diff options
| author | Joakim Verona | 2011-07-05 11:27:32 +0200 |
|---|---|---|
| committer | Joakim Verona | 2011-07-05 11:27:32 +0200 |
| commit | d812bba65d7f22a624c8cc19e9ec21ffe3720228 (patch) | |
| tree | a217ce72e72646458352eeec8e48c9b2766e7709 /src | |
| parent | f53a15f2c3b8eec90e76c95058842d76e60d29cd (diff) | |
| download | emacs-d812bba65d7f22a624c8cc19e9ec21ffe3720228.tar.gz emacs-d812bba65d7f22a624c8cc19e9ec21ffe3720228.zip | |
tweak to improve deletion of xwviews when emacs windows are closed
Diffstat (limited to 'src')
| -rw-r--r-- | src/window.c | 1 | ||||
| -rw-r--r-- | src/xwidget.c | 13 | ||||
| -rw-r--r-- | src/xwidget.h | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/window.c b/src/window.c index 93f763ec9af..3c867145620 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -3953,6 +3953,7 @@ when WINDOW is the only window on its frame. */) | |||
| 3953 | { | 3953 | { |
| 3954 | /* Block input. */ | 3954 | /* Block input. */ |
| 3955 | BLOCK_INPUT; | 3955 | BLOCK_INPUT; |
| 3956 | xwidget_view_delete_all_in_window(w); | ||
| 3956 | window_resize_apply (p, horflag); | 3957 | window_resize_apply (p, horflag); |
| 3957 | 3958 | ||
| 3958 | windows_or_buffers_changed++; | 3959 | windows_or_buffers_changed++; |
diff --git a/src/xwidget.c b/src/xwidget.c index 6b4cc2d459f..57243832ce3 100644 --- a/src/xwidget.c +++ b/src/xwidget.c | |||
| @@ -1048,6 +1048,19 @@ xwidget_from_id (int id) | |||
| 1048 | return &xwidgets[id]; | 1048 | return &xwidgets[id]; |
| 1049 | } | 1049 | } |
| 1050 | 1050 | ||
| 1051 | void xwidget_view_delete_all_in_window( struct window *w ) | ||
| 1052 | { | ||
| 1053 | //xxx | ||
| 1054 | struct xwidget_view* xv = NULL; | ||
| 1055 | for (int i = 0; i < MAX_XWIDGETS; i++){ | ||
| 1056 | xv = &xwidget_views[i]; | ||
| 1057 | if(xv->w == w){ | ||
| 1058 | gtk_widget_destroy(xv->widgetwindow); | ||
| 1059 | } | ||
| 1060 | } | ||
| 1061 | } | ||
| 1062 | |||
| 1063 | |||
| 1051 | struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w){ | 1064 | struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w){ |
| 1052 | struct xwidget_view* xv = NULL; | 1065 | struct xwidget_view* xv = NULL; |
| 1053 | for (int i = 0; i < MAX_XWIDGETS; i++) | 1066 | for (int i = 0; i < MAX_XWIDGETS; i++) |
diff --git a/src/xwidget.h b/src/xwidget.h index d5077bb0623..732dac5e7c2 100644 --- a/src/xwidget.h +++ b/src/xwidget.h | |||
| @@ -85,3 +85,4 @@ void assert_valid_xwidget_id(int id,char *str); | |||
| 85 | int lookup_xwidget (Lisp_Object spec); | 85 | int lookup_xwidget (Lisp_Object spec); |
| 86 | #define XG_XWIDGET "emacs_xwidget" | 86 | #define XG_XWIDGET "emacs_xwidget" |
| 87 | #define XG_XWIDGET_VIEW "emacs_xwidget_view" | 87 | #define XG_XWIDGET_VIEW "emacs_xwidget_view" |
| 88 | void xwidget_view_delete_all_in_window( struct window *w ); | ||