aboutsummaryrefslogtreecommitdiffstats
path: root/src/xwidget.c
diff options
context:
space:
mode:
authorJoakim Verona2011-06-22 18:55:01 +0200
committerJoakim Verona2011-06-22 18:55:01 +0200
commitbccbbe01e0d0a9fcd86e516372d13a347481808f (patch)
tree3c56bf4e7284dc7bfcefdd13cd64e5180b5e27b5 /src/xwidget.c
parentc20c683273e27d1682982c609bf3fce7eeca7f7d (diff)
downloademacs-bccbbe01e0d0a9fcd86e516372d13a347481808f.tar.gz
emacs-bccbbe01e0d0a9fcd86e516372d13a347481808f.zip
shows and hides the button created using xwidget-demo-minimal adequately with several windows and even several frames which is a first ever! segfaults after a while probably leaking or something.
Diffstat (limited to 'src/xwidget.c')
-rw-r--r--src/xwidget.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index 0acacbde951..389e6a655ff 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -802,21 +802,13 @@ xwidget_touched (struct xwidget_view *xw)
802void 802void
803xwidget_end_redisplay (struct glyph_matrix *matrix) 803xwidget_end_redisplay (struct glyph_matrix *matrix)
804{ 804{
805 return; //until I convert this to MVC 805 //return; //until I convert this to MVC
806
807 806
808 807
809 int i; 808 int i;
810 struct xwidget *xw; 809 struct xwidget *xw;
811 int area; 810 int area;
812 811
813 //dont change anything if minibuffer is selected this redisplay
814 //this is mostly a workaround to reduce the phantoming of xwidgets
815 // this is special case handling and it doesnt work too well.
816 /* if( (XWINDOW (FRAME_MINIBUF_WINDOW (SELECTED_FRAME()))) == */
817 /* (XWINDOW (FRAME_SELECTED_WINDOW (SELECTED_FRAME())))) */
818 /* return; */
819
820 region_modified = 0; 812 region_modified = 0;
821 xwidget_start_redisplay (); 813 xwidget_start_redisplay ();
822 //iterate desired glyph matrix of "live" window here, hide gtk widgets 814 //iterate desired glyph matrix of "live" window here, hide gtk widgets
@@ -855,7 +847,13 @@ xwidget_end_redisplay (struct glyph_matrix *matrix)
855 { 847 {
856 // printf("row %d not enabled\n", i); 848 // printf("row %d not enabled\n", i);
857 } 849 }
858 xwidget_touch (&xwidgets[glyph->u.xwidget_id]); 850 /*
851 the only call to xwidget_end_redisplay is in dispnew and looks like:
852 if ((XWINDOW(FRAME_SELECTED_WINDOW (SELECTED_FRAME()))) == (w))
853 xwidget_end_redisplay(w->current_matrix);
854 */
855 xwidget_touch (xwidget_view_lookup(&xwidgets[glyph->u.xwidget_id],
856 (XWINDOW(FRAME_SELECTED_WINDOW (SELECTED_FRAME())))));
859 } 857 }
860 } 858 }
861 } 859 }
@@ -864,13 +862,14 @@ xwidget_end_redisplay (struct glyph_matrix *matrix)
864 862
865 for (i = 0; i < MAX_XWIDGETS; i++) 863 for (i = 0; i < MAX_XWIDGETS; i++)
866 { 864 {
867 xw = &xwidgets[i]; 865 struct xwidget_view* xv = &xwidget_views[i];
868 if (xw->initialized) 866
867 if (xv->initialized && ( xv->w == (XWINDOW(FRAME_SELECTED_WINDOW (SELECTED_FRAME())))))
869 { 868 {
870 if (xwidget_touched(xw)) 869 if (xwidget_touched(xv))
871 xwidget_show (xw); 870 xwidget_show_view (xv);
872 else 871 else
873 xwidget_hide (xw); 872 xwidget_hide_view (xv);
874 } 873 }
875 } 874 }
876} 875}