diff options
| -rw-r--r-- | lisp/xwidget-test.el | 2 | ||||
| -rw-r--r-- | src/xwidget.c | 29 |
2 files changed, 15 insertions, 16 deletions
diff --git a/lisp/xwidget-test.el b/lisp/xwidget-test.el index 9bbb6cd045c..301fa1af984 100644 --- a/lisp/xwidget-test.el +++ b/lisp/xwidget-test.el | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | (defun xwidget-demo-minimal () | 30 | (defun xwidget-demo-minimal () |
| 31 | (interactive) | 31 | (interactive) |
| 32 | (insert "xwidgetdemo<<< a button. another button\n") | 32 | (insert "xwidgetdemo<<< a button. another button\n") |
| 33 | (xwidget-insert (point-min) 1 "button" 40 50 1) | 33 | (xwidget-insert (point-min) 2 "button" 40 50 1) |
| 34 | (define-key (current-local-map) [xwidget-event] 'xwidget-handler-demo-basic) | 34 | (define-key (current-local-map) [xwidget-event] 'xwidget-handler-demo-basic) |
| 35 | ) | 35 | ) |
| 36 | (defun xwidget-demo-basic () | 36 | (defun xwidget-demo-basic () |
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) | |||
| 802 | void | 802 | void |
| 803 | xwidget_end_redisplay (struct glyph_matrix *matrix) | 803 | xwidget_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 | } |