aboutsummaryrefslogtreecommitdiffstats
path: root/src/xwidget.c
diff options
context:
space:
mode:
authorGrégoire Jadi2013-07-25 15:33:10 +0200
committerGrégoire Jadi2013-07-25 15:33:10 +0200
commit5677ff6cfcbc19d352a029f1475eade9dfce93a5 (patch)
tree594fa297e0c561212cea2a2f774016ae5b51b5ae /src/xwidget.c
parent7e457d94c0d3effe78d652d0141c53c41ce06b53 (diff)
downloademacs-5677ff6cfcbc19d352a029f1475eade9dfce93a5.tar.gz
emacs-5677ff6cfcbc19d352a029f1475eade9dfce93a5.zip
Always store GTK Widget as GtkWidget*.
* src/xwidget.h (struct xwidget): GtkContainer -> GtkWidget for widgetwindow_osr. (struct xwidget_view): GtkContainer -> GtkWidget for widgetwindow and emacswindow.
Diffstat (limited to 'src/xwidget.c')
-rw-r--r--src/xwidget.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index eebb17d1aed..54efdba1797 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -226,7 +226,7 @@ TYPE is a symbol which can take one of the following values:
226 (!NILP (Fget(xw->type, QCxwgir_class)))) { 226 (!NILP (Fget(xw->type, QCxwgir_class)))) {
227 printf("init osr widget\n"); 227 printf("init osr widget\n");
228 block_input(); 228 block_input();
229 xw->widgetwindow_osr = GTK_CONTAINER (gtk_offscreen_window_new ()); 229 xw->widgetwindow_osr = gtk_offscreen_window_new ();
230 gtk_window_resize(GTK_WINDOW(xw->widgetwindow_osr), xw->width, xw->height); 230 gtk_window_resize(GTK_WINDOW(xw->widgetwindow_osr), xw->width, xw->height);
231 231
232 if (EQ(xw->type, Qwebkit_osr)) 232 if (EQ(xw->type, Qwebkit_osr))
@@ -238,9 +238,9 @@ TYPE is a symbol which can take one of the following values:
238 SDATA(Fcar(Fget(xw->type, QCxwgir_class)))); 238 SDATA(Fcar(Fget(xw->type, QCxwgir_class))));
239 239
240 gtk_widget_set_size_request (GTK_WIDGET (xw->widget_osr), xw->width, xw->height); 240 gtk_widget_set_size_request (GTK_WIDGET (xw->widget_osr), xw->width, xw->height);
241 gtk_container_add (xw->widgetwindow_osr, xw->widget_osr); 241 gtk_container_add (GTK_CONTAINER (xw->widgetwindow_osr), xw->widget_osr);
242 242
243 gtk_widget_show_all (GTK_WIDGET (xw->widgetwindow_osr)); 243 gtk_widget_show_all (xw->widgetwindow_osr);
244 244
245 /* store some xwidget data in the gtk widgets for convenient retrieval in the event handlers. */ 245 /* store some xwidget data in the gtk widgets for convenient retrieval in the event handlers. */
246 g_object_set_data (G_OBJECT (xw->widget_osr), XG_XWIDGET, (gpointer) (xw)); 246 g_object_set_data (G_OBJECT (xw->widget_osr), XG_XWIDGET, (gpointer) (xw));
@@ -381,8 +381,8 @@ void
381xwidget_show_view (struct xwidget_view *xv) 381xwidget_show_view (struct xwidget_view *xv)
382{ 382{
383 xv->hidden = 0; 383 xv->hidden = 0;
384 gtk_widget_show(GTK_WIDGET(xv->widgetwindow)); 384 gtk_widget_show(xv->widgetwindow);
385 gtk_fixed_move (GTK_FIXED (xv->emacswindow), GTK_WIDGET (xv->widgetwindow), xv->x + xv->clip_left, xv->y + xv->clip_top); //TODO refactor 385 gtk_fixed_move (GTK_FIXED (xv->emacswindow), xv->widgetwindow, xv->x + xv->clip_left, xv->y + xv->clip_top); //TODO refactor
386} 386}
387 387
388 388
@@ -391,8 +391,8 @@ void
391xwidget_hide_view (struct xwidget_view *xv) 391xwidget_hide_view (struct xwidget_view *xv)
392{ 392{
393 xv->hidden = 1; 393 xv->hidden = 1;
394 //gtk_widget_hide(GTK_WIDGET(xw->widgetwindow)); 394 //gtk_widget_hide(xw->widgetwindow);
395 gtk_fixed_move (GTK_FIXED (xv->emacswindow), GTK_WIDGET (xv->widgetwindow), 395 gtk_fixed_move (GTK_FIXED (xv->emacswindow), xv->widgetwindow,
396 10000, 10000); 396 10000, 10000);
397} 397}
398 398
@@ -1054,10 +1054,10 @@ xwidget_init_view (struct xwidget *xww,
1054 //later, drawing should crop container window if necessary to handle case where xwidget 1054 //later, drawing should crop container window if necessary to handle case where xwidget
1055 //is partially obscured by other emacs windows 1055 //is partially obscured by other emacs windows
1056 //other containers than gtk_fixed where explored, but gtk_fixed had the most predictable behaviour so far. 1056 //other containers than gtk_fixed where explored, but gtk_fixed had the most predictable behaviour so far.
1057 xv->emacswindow = GTK_CONTAINER (FRAME_GTK_WIDGET (s->f)); 1057 xv->emacswindow = FRAME_GTK_WIDGET (s->f);
1058 xv->widgetwindow = GTK_CONTAINER (gtk_fixed_new ()); 1058 xv->widgetwindow = gtk_fixed_new ();
1059 gtk_widget_set_has_window(GTK_WIDGET ( xv->widgetwindow), TRUE); 1059 gtk_widget_set_has_window(xv->widgetwindow, TRUE);
1060 gtk_container_add (xv->widgetwindow, xv->widget); 1060 gtk_container_add (GTK_CONTAINER (xv->widgetwindow), xv->widget);
1061 1061
1062 //store some xwidget data in the gtk widgets 1062 //store some xwidget data in the gtk widgets
1063 g_object_set_data (G_OBJECT (xv->widget), XG_FRAME_DATA, (gpointer) (s->f)); //the emacs frame 1063 g_object_set_data (G_OBJECT (xv->widget), XG_FRAME_DATA, (gpointer) (s->f)); //the emacs frame
@@ -1068,10 +1068,10 @@ xwidget_init_view (struct xwidget *xww,
1068 1068
1069 1069
1070 gtk_widget_set_size_request (GTK_WIDGET (xv->widget), xww->width, xww->height); 1070 gtk_widget_set_size_request (GTK_WIDGET (xv->widget), xww->width, xww->height);
1071 gtk_widget_set_size_request (GTK_WIDGET (xv->widgetwindow), xww->width, xww->height); 1071 gtk_widget_set_size_request (xv->widgetwindow, xww->width, xww->height);
1072 gtk_fixed_put (GTK_FIXED (FRAME_GTK_WIDGET (s->f)), GTK_WIDGET (xv->widgetwindow), x, y); 1072 gtk_fixed_put (GTK_FIXED (FRAME_GTK_WIDGET (s->f)), xv->widgetwindow, x, y);
1073 xv->x = x; xv->y = y; 1073 xv->x = x; xv->y = y;
1074 gtk_widget_show_all (GTK_WIDGET (xv->widgetwindow)); 1074 gtk_widget_show_all (xv->widgetwindow);
1075 1075
1076 1076
1077 1077
@@ -1163,7 +1163,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
1163 { 1163 {
1164 //TODO should be possible to use xwidget_show_view here 1164 //TODO should be possible to use xwidget_show_view here
1165 gtk_fixed_move (GTK_FIXED (FRAME_GTK_WIDGET (s->f)), 1165 gtk_fixed_move (GTK_FIXED (FRAME_GTK_WIDGET (s->f)),
1166 GTK_WIDGET (xv->widgetwindow), 1166 xv->widgetwindow,
1167 x + clip_left, y + clip_top); 1167 x + clip_left, y + clip_top);
1168 } 1168 }
1169 } 1169 }
@@ -1174,7 +1174,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
1174 || (xv->clip_bottom != clip_bottom) 1174 || (xv->clip_bottom != clip_bottom)
1175 || (xv->clip_top != clip_top) 1175 || (xv->clip_top != clip_top)
1176 || (xv->clip_left != clip_left)){ 1176 || (xv->clip_left != clip_left)){
1177 gtk_widget_set_size_request (GTK_WIDGET (xv->widgetwindow), clip_right + clip_left, clip_bottom + clip_top); 1177 gtk_widget_set_size_request (xv->widgetwindow, clip_right + clip_left, clip_bottom + clip_top);
1178 gtk_fixed_move(GTK_FIXED(xv->widgetwindow), xv->widget, -clip_left, -clip_top); 1178 gtk_fixed_move(GTK_FIXED(xv->widgetwindow), xv->widget, -clip_left, -clip_top);
1179 printf("reclip %d %d -> %d %d clip_top:%d clip_left:%d\n",xv->clip_right, xv->clip_bottom, clip_right, clip_bottom, clip_top , clip_left); 1179 printf("reclip %d %d -> %d %d clip_top:%d clip_left:%d\n",xv->clip_right, xv->clip_bottom, clip_right, clip_bottom, clip_top , clip_left);
1180 1180
@@ -1185,7 +1185,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
1185 //TODO it seems its possible to get out of sync with emacs redraws so emacs bg sometimes shows up instead of xwidget 1185 //TODO it seems its possible to get out of sync with emacs redraws so emacs bg sometimes shows up instead of xwidget
1186 //its just a visual glitch though 1186 //its just a visual glitch though
1187 if (!xwidget_hidden(xv)){ 1187 if (!xwidget_hidden(xv)){
1188 gtk_widget_queue_draw (GTK_WIDGET(xv->widgetwindow)); 1188 gtk_widget_queue_draw (xv->widgetwindow);
1189 gtk_widget_queue_draw (xv->widget); 1189 gtk_widget_queue_draw (xv->widget);
1190 } 1190 }
1191} 1191}
@@ -1359,7 +1359,7 @@ DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, doc:
1359 //gtk_window_resize( GTK_WINDOW(xw->widget_osr), xw->width, xw->height); 1359 //gtk_window_resize( GTK_WINDOW(xw->widget_osr), xw->width, xw->height);
1360 gtk_window_resize( GTK_WINDOW(xw->widgetwindow_osr), xw->width, xw->height); 1360 gtk_window_resize( GTK_WINDOW(xw->widgetwindow_osr), xw->width, xw->height);
1361 //gtk_container_resize_children ( GTK_WINDOW(xw->widgetwindow_osr)); 1361 //gtk_container_resize_children ( GTK_WINDOW(xw->widgetwindow_osr));
1362 gtk_container_resize_children ( GTK_CONTAINER(xw->widgetwindow_osr)); 1362 gtk_container_resize_children (GTK_CONTAINER(xw->widgetwindow_osr));
1363 1363
1364 } 1364 }
1365 1365
@@ -1531,7 +1531,7 @@ DEFUN ("delete-xwidget-view", Fdelete_xwidget_view, Sdelete_xwidget_view,
1531{ 1531{
1532 CHECK_XWIDGET_VIEW (xwidget_view); 1532 CHECK_XWIDGET_VIEW (xwidget_view);
1533 struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view); 1533 struct xwidget_view *xv = XXWIDGET_VIEW (xwidget_view);
1534 gtk_widget_destroy(GTK_WIDGET (xv->widgetwindow)); 1534 gtk_widget_destroy(xv->widgetwindow);
1535 Vxwidget_view_list = Fdelq (xwidget_view, Vxwidget_view_list); 1535 Vxwidget_view_list = Fdelq (xwidget_view, Vxwidget_view_list);
1536} 1536}
1537 1537
@@ -1765,7 +1765,7 @@ xwidget_view_delete_all_in_window (struct window *w)
1765 if (XWIDGET_VIEW_P (XCAR (tail))) { 1765 if (XWIDGET_VIEW_P (XCAR (tail))) {
1766 xv = XXWIDGET_VIEW (XCAR (tail)); 1766 xv = XXWIDGET_VIEW (XCAR (tail));
1767 if(XWINDOW (xv->w) == w) { 1767 if(XWINDOW (xv->w) == w) {
1768 gtk_widget_destroy(GTK_WIDGET(xv->widgetwindow)); 1768 gtk_widget_destroy(xv->widgetwindow);
1769 Vxwidget_view_list = Fdelq (XCAR (tail), Vxwidget_view_list); 1769 Vxwidget_view_list = Fdelq (XCAR (tail), Vxwidget_view_list);
1770 } 1770 }
1771 } 1771 }
@@ -1922,8 +1922,8 @@ kill_buffer_xwidgets (Lisp_Object buffer)
1922 struct xwidget *xw = XXWIDGET (xwidget); 1922 struct xwidget *xw = XXWIDGET (xwidget);
1923 if (xw->widget_osr && xw->widgetwindow_osr) 1923 if (xw->widget_osr && xw->widgetwindow_osr)
1924 { 1924 {
1925 gtk_widget_destroy(GTK_WIDGET (xw->widget_osr)); 1925 gtk_widget_destroy(xw->widget_osr);
1926 gtk_widget_destroy(GTK_WIDGET (xw->widgetwindow_osr)); 1926 gtk_widget_destroy(xw->widgetwindow_osr);
1927 } 1927 }
1928 } 1928 }
1929 } 1929 }