Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
810f2256
Commit
810f2256
authored
Nov 16, 2003
by
Jan Djärv
Browse files
Implement multiple display handling for GTK.
parent
0bdd0f79
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
411 additions
and
160 deletions
+411
-160
src/ChangeLog
src/ChangeLog
+52
-0
src/gtkutil.c
src/gtkutil.c
+199
-45
src/gtkutil.h
src/gtkutil.h
+7
-2
src/xdisp.c
src/xdisp.c
+2
-2
src/xfns.c
src/xfns.c
+19
-19
src/xmenu.c
src/xmenu.c
+4
-3
src/xterm.c
src/xterm.c
+123
-89
src/xterm.h
src/xterm.h
+5
-0
No files found.
src/ChangeLog
View file @
810f2256
2003-11-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* xfns.c (x_window_to_frame, x_any_window_to_frame)
(x_non_menubar_window_to_frame, x_menubar_window_to_frame)
(x_top_window_to_frame): Add Display* argument to xg_win_to_widget.
(x_create_bitmap_mask, xg_set_icon, create_frame_xic)
(xic_set_statusarea, x_window, gif_load): Formatting adjustments.
* xterm.h (struct x_display_info): New field xg_cursor for GTK.
* xterm.c: Add Display * to x_window_to_scroll_bar declaration.
(XTmouse_position, handle_one_xevent): Pass Display* to
x_window_to_scroll_bar.
(x_window_to_scroll_bar): Take a Display* argument.
Check that display for frame is equal to Display* argument.
(event_handler_gdk): current_dpyinfo removed. Get dpyinfo from
x_display_info_for_display instead. Use Display in xev instead
of GDK_DISPLAY.
(x_dispatch_event): Call x_display_info_for_display.
(XTread_socket): Move GTK part out of loop. current_dpyinfo removed.
(x_connection_closed): Call xg_display_close for GTK.
(x_term_init): Call xg_display_open for additional displays.
Initiate dpyinfo->xg_cursor with call to xg_create_default_cursor
for GTK.
* xmenu.c (single_menu_item, mouse_position_for_popup)
(x_activate_menubar): Formatting adjustments.
* xdisp.c (update_tool_bar, redisplay_tool_bar): Formatting
adjustments.
* gtkutil.c (xg_get_gdk_display, xg_set_screen, xg_display_open)
(xg_display_close, xg_create_default_cursor)
(xg_get_gdk_pixmap_and_mask): New functions for multiple display
handling.
(xg_left_ptr_cursor): Removed.
(xg_set_cursor): cursor changed to GdkCursor*. Do not create
cursor here.
(xg_win_to_widget): Take Display* argument, call
gdk_xid_table_lookup_for_display.
(xg_create_frame_widgets, xg_get_file_name, create_menus)
(xg_create_widget, xg_modify_menubar_widgets): Call xg_set_screen.
(xg_create_widget, xg_create_scroll_bar): Use xg_cursor
in FRAME_X_DISPLAY_INFO.
(xg_get_scroll_id_for_window): Take Display* argument.
(update_frame_tool_bar): Call xg_get_gdk_pixmap_and_mask.
(xg_initialize): xg_left_ptr_cursor removed.
* gtkutil.h: xg_get_scroll_id_for_window, xg_win_to_widget takes
Display* argument also. Declare xg_display_open,
xg_display_close, xg_create_default_cursor.
2003-11-14 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* xterm.c (x_detect_focus_change): Do not change focus frame for
...
...
src/gtkutil.c
View file @
810f2256
...
...
@@ -36,9 +36,128 @@ Boston, MA 02111-1307, USA. */
#include "coding.h"
#include <gdk/gdkkeysyms.h>
#define FRAME_TOTAL_PIXEL_HEIGHT(f) \
(FRAME_PIXEL_HEIGHT (f) + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f))
/***********************************************************************
Display handling functions
***********************************************************************/
#ifdef HAVE_GTK_MULTIDISPLAY
/* Return the GdkDisplay that corresponds to the X display DPY. */
static
GdkDisplay
*
xg_get_gdk_display
(
dpy
)
Display
*
dpy
;
{
return
gdk_x11_lookup_xdisplay
(
dpy
);
}
/* When the GTK widget W is to be created on a display for F that
is not the default display, set the display for W.
W can be a GtkMenu or a GtkWindow widget. */
static
void
xg_set_screen
(
w
,
f
)
GtkWidget
*
w
;
FRAME_PTR
f
;
{
if
(
FRAME_X_DISPLAY
(
f
)
!=
GDK_DISPLAY
())
{
GdkDisplay
*
gdpy
=
gdk_x11_lookup_xdisplay
(
FRAME_X_DISPLAY
(
f
));
GdkScreen
*
gscreen
=
gdk_display_get_default_screen
(
gdpy
);
if
(
GTK_IS_MENU
(
w
))
gtk_menu_set_screen
(
GTK_MENU
(
w
),
gscreen
);
else
gtk_window_set_screen
(
GTK_WINDOW
(
w
),
gscreen
);
}
}
#else
/* not HAVE_GTK_MULTIDISPLAY */
/* Make some defines so we can use the GTK 2.2 functions when
compiling with GTK 2.0. */
#define xg_set_screen(w, f)
#define gdk_xid_table_lookup_for_display(dpy, w) gdk_xid_table_lookup (w)
#define gdk_pixmap_foreign_new_for_display(dpy, p) gdk_pixmap_foreign_new (p)
#define gdk_cursor_new_for_display(dpy, c) gdk_cursor_new (c)
#define gdk_x11_lookup_xdisplay(dpy) 0
#define GdkDisplay void
#endif
/* not HAVE_GTK_MULTIDISPLAY */
/* Open a display named by DISPLAY_NAME. The display is returned in *DPY.
*DPY is set to NULL if the display can't be opened.
Returns non-zero if display could be opened, zero if display could not
be opened, and less than zero if the GTK version doesn't support
multipe displays. */
int
xg_display_open
(
display_name
,
dpy
)
char
*
display_name
;
Display
**
dpy
;
{
#ifdef HAVE_GTK_MULTIDISPLAY
GdkDisplay
*
gdpy
;
gdpy
=
gdk_display_open
(
display_name
);
*
dpy
=
gdpy
?
GDK_DISPLAY_XDISPLAY
(
gdpy
)
:
NULL
;
return
gdpy
!=
NULL
;
#else
/* not HAVE_GTK_MULTIDISPLAY */
return
-
1
;
#endif
/* not HAVE_GTK_MULTIDISPLAY */
}
void
xg_display_close
(
Display
*
dpy
)
{
#ifdef HAVE_GTK_MULTIDISPLAY
GdkDisplay
*
gdpy
=
gdk_x11_lookup_xdisplay
(
dpy
);
/* GTK 2.2 has a bug that makes gdk_display_close crash (bug
http://bugzilla.gnome.org/show_bug.cgi?id=85715). This way
we can continue running, but there will be memory leaks. */
#if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION < 4
/* If this is the default display, we must change it before calling
dispose, otherwise it will crash. */
if
(
gdk_display_get_default
()
==
gdpy
)
{
struct
x_display_info
*
dpyinfo
;
Display
*
new_dpy
=
0
;
GdkDisplay
*
gdpy_new
;
/* Find another display. */
for
(
dpyinfo
=
x_display_list
;
dpyinfo
;
dpyinfo
=
dpyinfo
->
next
)
if
(
dpyinfo
->
display
!=
dpy
)
{
new_dpy
=
dpyinfo
->
display
;
break
;
}
if
(
!
new_dpy
)
return
;
/* Emacs will exit anyway. */
gdpy_new
=
gdk_x11_lookup_xdisplay
(
new_dpy
);
gdk_display_manager_set_default_display
(
gdk_display_manager_get
(),
gdpy_new
);
}
g_object_run_dispose
(
G_OBJECT
(
gdpy
));
#else
/* I hope this will be fixed in GTK 2.4. It is what bug 85715 says. */
gdk_display_close
(
gdpy
);
#endif
#endif
/* HAVE_GTK_MULTIDISPLAY */
}
/***********************************************************************
...
...
@@ -48,10 +167,6 @@ Boston, MA 02111-1307, USA. */
NULL if no timer is started. */
static
struct
atimer
*
xg_timer
;
/* The cursor used for scroll bars and popup menus.
We only have one cursor for all scroll bars and all popup menus. */
static
GdkCursor
*
xg_left_ptr_cursor
;
/* The next two variables and functions are taken from lwlib. */
static
widget_value
*
widget_value_free_list
;
...
...
@@ -103,24 +218,48 @@ free_widget_value (wv)
}
}
/* Set *CURSOR on W and all widgets W contain. We must do like this
for scroll bars and menu because they create widgets internally,
and it is those widgets that are visible.
If *CURSOR is NULL, create a GDK_LEFT_PTR cursor and set *CURSOR to
the created cursor. */
void
/* Create and return the cursor to be used for popup menus and
scroll bars on display DPY. */
GdkCursor
*
xg_create_default_cursor
(
dpy
)
Display
*
dpy
;
{
GdkDisplay
*
gdpy
=
gdk_x11_lookup_xdisplay
(
dpy
);
return
gdk_cursor_new_for_display
(
gdpy
,
GDK_LEFT_PTR
);
}
/* For the image defined in IMG, make and return a GdkPixmap for
the pixmap in *GPIX, and a GdkBitmap for the mask in *GMASK.
If IMG has no mask, *GMASK is set to NULL.
The image is defined on the display where frame F is. */
static
void
xg_get_gdk_pixmap_and_mask
(
f
,
img
,
gpix
,
gmask
)
FRAME_PTR
f
;
struct
image
*
img
;
GdkPixmap
**
gpix
;
GdkBitmap
**
gmask
;
{
GdkDisplay
*
gdpy
=
gdk_x11_lookup_xdisplay
(
FRAME_X_DISPLAY
(
f
));
*
gpix
=
gdk_pixmap_foreign_new_for_display
(
gdpy
,
img
->
pixmap
);
*
gmask
=
img
->
mask
?
(
GdkBitmap
*
)
gdk_pixmap_foreign_new_for_display
(
gdpy
,
img
->
mask
)
:
0
;
}
/* Set CURSOR on W and all widgets W contain. We must do like this
for scroll bars and menu because they create widgets internally,
and it is those widgets that are visible. */
static
void
xg_set_cursor
(
w
,
cursor
)
GtkWidget
*
w
;
GdkCursor
*
*
cursor
;
GdkCursor
*
cursor
;
{
GList
*
children
=
gdk_window_peek_children
(
w
->
window
);
/* Create the cursor unless already created. */
if
(
!
*
cursor
)
*
cursor
=
gdk_cursor_new
(
GDK_LEFT_PTR
);
gdk_window_set_cursor
(
w
->
window
,
*
cursor
);
gdk_window_set_cursor
(
w
->
window
,
cursor
);
/* The scroll bar widget has more than one GDK window (had to look at
the source to figure this out), and there is no way to set cursor
...
...
@@ -128,7 +267,7 @@ xg_set_cursor (w, cursor)
Ditto for menus. */
for
(
;
children
;
children
=
g_list_next
(
children
))
gdk_window_set_cursor
(
GDK_WINDOW
(
children
->
data
),
*
cursor
);
gdk_window_set_cursor
(
GDK_WINDOW
(
children
->
data
),
cursor
);
}
/* Timer function called when a timeout occurs for xg_timer.
...
...
@@ -381,20 +520,23 @@ xg_frame_set_char_size (f, cols, rows)
cancel_mouse_face
(
f
);
}
/* Convert an X Window WSESC to its corresponding GtkWidget.
/* Convert an X Window WSESC
on display DPY
to its corresponding GtkWidget.
Must be done like this, because GtkWidget:s can have "hidden"
X Window that aren't accessible.
Return 0 if no widget match WDESC. */
GtkWidget
*
xg_win_to_widget
(
wdesc
)
xg_win_to_widget
(
dpy
,
wdesc
)
Display
*
dpy
;
Window
wdesc
;
{
gpointer
gdkwin
;
GtkWidget
*
gwdesc
=
0
;
BLOCK_INPUT
;
gdkwin
=
gdk_xid_table_lookup
(
wdesc
);
gdkwin
=
gdk_xid_table_lookup_for_display
(
gdk_x11_lookup_xdisplay
(
dpy
),
wdesc
);
if
(
gdkwin
)
{
GdkEvent
event
;
...
...
@@ -429,9 +571,9 @@ xg_pix_to_gcolor (w, pixel, c)
Return TRUE to tell GTK that this expose event has been fully handeled
and that GTK shall do nothing more with it. */
static
gboolean
xg_fixed_handle_expose
(
GtkWidget
*
widget
,
GdkEventExpose
*
event
,
gpointer
user_data
)
xg_fixed_handle_expose
(
GtkWidget
*
widget
,
GdkEventExpose
*
event
,
gpointer
user_data
)
{
GList
*
iter
;
...
...
@@ -483,6 +625,8 @@ xg_create_frame_widgets (f)
BLOCK_INPUT
;
wtop
=
gtk_window_new
(
GTK_WINDOW_TOPLEVEL
);
xg_set_screen
(
wtop
,
f
);
wvbox
=
gtk_vbox_new
(
FALSE
,
0
);
wfixed
=
gtk_fixed_new
();
/* Must have this to place scroll bars */
...
...
@@ -512,7 +656,8 @@ xg_create_frame_widgets (f)
gtk_fixed_set_has_window
(
GTK_FIXED
(
wfixed
),
TRUE
);
gtk_widget_set_size_request
(
wfixed
,
FRAME_PIXEL_WIDTH
(
f
),
FRAME_PIXEL_HEIGHT
(
f
));
gtk_widget_set_size_request
(
wfixed
,
FRAME_PIXEL_WIDTH
(
f
),
FRAME_PIXEL_HEIGHT
(
f
));
gtk_container_add
(
GTK_CONTAINER
(
wtop
),
wvbox
);
gtk_box_pack_end
(
GTK_BOX
(
wvbox
),
wfixed
,
TRUE
,
TRUE
,
0
);
...
...
@@ -963,6 +1108,8 @@ xg_get_file_name (f, prompt, default_filename, mustmatch_p)
filewin
=
gtk_file_selection_new
(
prompt
);
filesel
=
GTK_FILE_SELECTION
(
filewin
);
xg_set_screen
(
filewin
,
f
);
gtk_widget_set_name
(
filewin
,
"emacs-filedialog"
);
gtk_window_set_transient_for
(
GTK_WINDOW
(
filewin
),
...
...
@@ -1500,7 +1647,11 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb,
if
(
!
topmenu
)
{
if
(
!
menu_bar_p
)
wmenu
=
gtk_menu_new
();
if
(
!
menu_bar_p
)
{
wmenu
=
gtk_menu_new
();
xg_set_screen
(
wmenu
,
f
);
}
else
wmenu
=
gtk_menu_bar_new
();
/* Put cl_data on the top menu for easier access. */
...
...
@@ -1618,12 +1769,11 @@ xg_create_widget (type, name, f, val,
if
(
strcmp
(
type
,
"dialog"
)
==
0
)
{
w
=
create_dialog
(
val
,
select_cb
,
deactivate_cb
);
xg_set_screen
(
w
,
f
);
gtk_window_set_transient_for
(
GTK_WINDOW
(
w
),
GTK_WINDOW
(
FRAME_GTK_OUTER_WIDGET
(
f
)));
gtk_window_set_destroy_with_parent
(
GTK_WINDOW
(
w
),
TRUE
);
if
(
w
)
gtk_widget_set_name
(
w
,
"emacs-dialog"
);
gtk_widget_set_name
(
w
,
"emacs-dialog"
);
}
else
if
(
menu_bar_p
||
pop_up_p
)
{
...
...
@@ -1645,7 +1795,7 @@ xg_create_widget (type, name, f, val,
{
/* Must realize so the GdkWindow inside the widget is created. */
gtk_widget_realize
(
w
);
xg_set_cursor
(
w
,
&
xg_left_ptr
_cursor
);
xg_set_cursor
(
w
,
FRAME_X_DISPLAY_INFO
(
f
)
->
xg
_cursor
);
}
}
else
...
...
@@ -2261,7 +2411,10 @@ xg_modify_menubar_widgets (menubar, f, val, deep_p,
a new menu bar item, it has no sub menu yet. So we set the
newly created sub menu under witem. */
if
(
newsub
!=
sub
)
gtk_menu_item_set_submenu
(
witem
,
newsub
);
{
xg_set_screen
(
newsub
,
f
);
gtk_menu_item_set_submenu
(
witem
,
newsub
);
}
}
}
...
...
@@ -2417,16 +2570,17 @@ xg_get_widget_from_map (idx)
return
0
;
}
/* Return the scrollbar id for X Window WID.
/* Return the scrollbar id for X Window WID
on display DPY
.
Return -1 if WID not in id_to_widget. */
int
xg_get_scroll_id_for_window
(
wid
)
xg_get_scroll_id_for_window
(
dpy
,
wid
)
Display
*
dpy
;
Window
wid
;
{
int
idx
;
GtkWidget
*
w
;
w
=
xg_win_to_widget
(
wid
);
w
=
xg_win_to_widget
(
dpy
,
wid
);
if
(
w
)
{
...
...
@@ -2533,7 +2687,7 @@ xg_create_scroll_bar (f, bar, scroll_callback, scroll_bar_name)
wscroll
,
-
1
,
-
1
);
/* Set the cursor to an arrow. */
xg_set_cursor
(
wscroll
,
&
xg_left_ptr
_cursor
);
xg_set_cursor
(
wscroll
,
FRAME_X_DISPLAY_INFO
(
f
)
->
xg
_cursor
);
SET_SCROLL_BAR_X_WINDOW
(
bar
,
scroll_id
);
}
...
...
@@ -2952,8 +3106,8 @@ xg_tool_bar_item_expose_callback (w, event, client_data)
event
->
area
.
x
-=
width
>
event
->
area
.
width
?
width
-
event
->
area
.
width
:
0
;
event
->
area
.
y
-=
height
>
event
->
area
.
height
?
height
-
event
->
area
.
height
:
0
;
event
->
area
.
x
=
max
(
0
,
event
->
area
.
x
);
event
->
area
.
y
=
max
(
0
,
event
->
area
.
y
);
event
->
area
.
x
=
max
(
0
,
event
->
area
.
x
);
event
->
area
.
y
=
max
(
0
,
event
->
area
.
y
);
event
->
area
.
width
=
max
(
width
,
event
->
area
.
width
);
event
->
area
.
height
=
max
(
height
,
event
->
area
.
height
);
...
...
@@ -2975,7 +3129,7 @@ xg_tool_bar_expose_callback (w, event, client_data)
GdkEventExpose
*
event
;
gpointer
client_data
;
{
update_frame_tool_bar
((
FRAME_PTR
)
client_data
);
update_frame_tool_bar
((
FRAME_PTR
)
client_data
);
return
FALSE
;
}
...
...
@@ -3108,11 +3262,12 @@ update_frame_tool_bar (f)
if
(
!
wicon
)
{
GdkPixmap
*
gpix
=
gdk_pixmap_foreign_new
(
img
->
pixmap
)
;
GdkBitmap
*
gmask
=
img
->
mask
?
(
GdkBitmap
*
)
gdk_pixmap_foreign_new
(
img
->
mask
)
:
0
;
GdkPixmap
*
gpix
;
GdkBitmap
*
gmask
;
GtkWidget
*
w
;
GtkWidget
*
w
=
gtk_image_new_from_pixmap
(
gpix
,
gmask
);
xg_get_gdk_pixmap_and_mask
(
f
,
img
,
&
gpix
,
&
gmask
);
w
=
gtk_image_new_from_pixmap
(
gpix
,
gmask
);
gtk_toolbar_append_item
(
GTK_TOOLBAR
(
x
->
toolbar_widget
),
0
,
0
,
0
,
w
,
...
...
@@ -3170,10 +3325,10 @@ update_frame_tool_bar (f)
if
(
old_img
!=
img
->
pixmap
)
{
GdkPixmap
*
gpix
=
gdk_pixmap_foreign_new
(
img
->
pixmap
);
GdkBitmap
*
gmask
=
img
->
mask
?
(
GdkBitmap
*
)
gdk_pixmap_foreign_new
(
img
->
mask
)
:
0
;
GdkPixmap
*
gpix
;
GdkBitmap
*
gmask
;
xg_get_gdk_pixmap_and_mask
(
f
,
img
,
&
gpix
,
&
gmask
);
gtk_image_set_from_pixmap
(
wimage
,
gpix
,
gmask
);
}
...
...
@@ -3241,7 +3396,6 @@ void
xg_initialize
()
{
xg_ignore_gtk_scrollbar
=
0
;
xg_left_ptr_cursor
=
0
;
xg_detached_menus
=
0
;
xg_menu_cb_list
.
prev
=
xg_menu_cb_list
.
next
=
xg_menu_item_cb_list
.
prev
=
xg_menu_item_cb_list
.
next
=
0
;
...
...
src/gtkutil.h
View file @
810f2256
...
...
@@ -152,7 +152,7 @@ extern int xg_update_frame_menubar P_ ((FRAME_PTR f));
extern
int
xg_have_tear_offs
P_
((
void
));
extern
int
xg_get_scroll_id_for_window
P_
((
Window
wid
));
extern
int
xg_get_scroll_id_for_window
P_
((
Display
*
dpy
,
Window
wid
));
extern
void
xg_create_scroll_bar
P_
((
FRAME_PTR
f
,
struct
scroll_bar
*
bar
,
...
...
@@ -184,7 +184,12 @@ extern void xg_resize_widgets P_ ((FRAME_PTR f,
int
pixelheight
));
extern
void
xg_frame_cleared
P_
((
FRAME_PTR
f
));
extern
void
xg_frame_set_char_size
P_
((
FRAME_PTR
f
,
int
cols
,
int
rows
));
extern
GtkWidget
*
xg_win_to_widget
P_
((
Window
));
extern
GtkWidget
*
xg_win_to_widget
P_
((
Display
*
dpy
,
Window
wdesc
));
extern
int
xg_display_open
P_
((
char
*
display_name
,
Display
**
dpy
));
extern
void
xg_display_close
P_
((
Display
*
dpy
));
extern
GdkCursor
*
xg_create_default_cursor
P_
((
Display
*
dpy
));
extern
int
xg_create_frame_widgets
P_
((
FRAME_PTR
f
));
extern
void
x_wm_set_size_hint
P_
((
FRAME_PTR
f
,
long
flags
,
...
...
src/xdisp.c
View file @
810f2256
...
...
@@ -8142,7 +8142,7 @@ update_tool_bar (f, save_match_data)
int save_match_data;
{
#ifdef USE_GTK
int do_update = FRAME_EXTERNAL_TOOL_BAR(f);
int do_update = FRAME_EXTERNAL_TOOL_BAR
(f);
#else
int do_update = WINDOWP (f->tool_bar_window)
&& WINDOW_TOTAL_LINES (XWINDOW (f->tool_bar_window)) > 0;
...
...
@@ -8539,7 +8539,7 @@ redisplay_tool_bar (f)
int change_height_p = 0;
#ifdef USE_GTK
if (FRAME_EXTERNAL_TOOL_BAR(f))
if (FRAME_EXTERNAL_TOOL_BAR
(f))
update_frame_tool_bar (f);
return 0;
#endif
...
...
src/xfns.c
View file @
810f2256
...
...
@@ -308,7 +308,7 @@ x_window_to_frame (dpyinfo, wdesc)
#ifdef USE_GTK
if (f->output_data.x->edit_widget)
{
GtkWidget *gwdesc = xg_win_to_widget (wdesc);
GtkWidget *gwdesc = xg_win_to_widget (
dpyinfo->display,
wdesc);
struct x_output *x = f->output_data.x;
if (gwdesc != 0 && gwdesc == x->edit_widget)
return f;
...
...
@@ -352,7 +352,7 @@ x_any_window_to_frame (dpyinfo, wdesc)
else if (x->widget)
{
#ifdef USE_GTK
GtkWidget *gwdesc = xg_win_to_widget (wdesc);
GtkWidget *gwdesc = xg_win_to_widget (
dpyinfo->display,
wdesc);
if (gwdesc != 0
&& (gwdesc == x->widget
|| gwdesc == x->edit_widget
...
...
@@ -404,7 +404,7 @@ x_non_menubar_window_to_frame (dpyinfo, wdesc)
else if (x->widget)
{
#ifdef USE_GTK
GtkWidget *gwdesc = xg_win_to_widget (wdesc);
GtkWidget *gwdesc = xg_win_to_widget (
dpyinfo->display,
wdesc);
if (gwdesc != 0
&& (gwdesc == x->widget
|| gwdesc == x->edit_widget
...
...
@@ -448,7 +448,7 @@ x_menubar_window_to_frame (dpyinfo, wdesc)
#ifdef USE_GTK
if (x->menubar_widget)
{
GtkWidget *gwdesc = xg_win_to_widget (wdesc);
GtkWidget *gwdesc = xg_win_to_widget (
dpyinfo->display,
wdesc);
int found = 0;
BLOCK_INPUT;
...
...
@@ -494,7 +494,7 @@ x_top_window_to_frame (dpyinfo, wdesc)
{
/* This frame matches if the window is its topmost widget. */
#ifdef USE_GTK
GtkWidget *gwdesc = xg_win_to_widget (wdesc);
GtkWidget *gwdesc = xg_win_to_widget (
dpyinfo->display,
wdesc);
if (gwdesc == x->widget)
return f;
#else
...
...
@@ -762,7 +762,7 @@ static void x_destroy_x_image P_ ((XImage *ximg));
It's nicer with some borders in this context */
int
x_create_bitmap_mask(f, id)
x_create_bitmap_mask
(f, id)
struct frame *f;
int id;
{
...
...
@@ -780,9 +780,9 @@ x_create_bitmap_mask(f, id)
if (!(id > 0))
return -1;
pixmap = x_bitmap_pixmap(f, id);
width = x_bitmap_width(f, id);
height = x_bitmap_height(f, id);
pixmap = x_bitmap_pixmap
(f, id);
width = x_bitmap_width
(f, id);
height = x_bitmap_height
(f, id);
BLOCK_INPUT;
ximg = XGetImage (FRAME_X_DISPLAY (f), pixmap, 0, 0, width, height,
...
...
@@ -799,7 +799,7 @@ x_create_bitmap_mask(f, id)
UNBLOCK_INPUT;
if (!result)
{
XDestroyImage(ximg);
XDestroyImage
(ximg);
return -1;
}
...
...
@@ -838,7 +838,7 @@ x_create_bitmap_mask(f, id)
dpyinfo->bitmaps[id - 1].mask = mask;
XDestroyImage (ximg);
x_destroy_x_image(mask_img);
x_destroy_x_image
(mask_img);
return 0;
}
...
...
@@ -1106,7 +1106,7 @@ static Lisp_Object x_find_image_file P_ ((Lisp_Object file));
may be any format that GdkPixbuf knows about, i.e. not just bitmaps. */
int
xg_set_icon(f, file)
xg_set_icon
(f, file)
FRAME_PTR f;
Lisp_Object file;
{
...
...
@@ -2458,8 +2458,8 @@ create_frame_xic (f)
xic = XCreateIC (xim,
XNInputStyle, xic_style,
XNClientWindow, FRAME_X_WINDOW(f),
XNFocusWindow, FRAME_X_WINDOW(f),
XNClientWindow, FRAME_X_WINDOW
(f),
XNFocusWindow, FRAME_X_WINDOW
(f),
XNStatusAttributes, status_attr,
XNPreeditAttributes, preedit_attr,
NULL);
...
...
@@ -2550,7 +2550,7 @@ xic_set_statusarea (f)
XFree (needed);
attr = XVaCreateNestedList (0, XNArea, &area, NULL);
XSetICValues(xic, XNStatusAttributes, attr, NULL);
XSetICValues
(xic, XNStatusAttributes, attr, NULL);
XFree (attr);
}
...
...
@@ -2793,7 +2793,7 @@ x_window (f, window_prompting, minibuffer_only)
{
/* XIM server might require some X events. */
unsigned long fevent = NoEventMask;
XGetICValues(FRAME_XIC (f), XNFilterEvents, &fevent, NULL);
XGetICValues
(FRAME_XIC (f), XNFilterEvents, &fevent, NULL);
attributes.event_mask |= fevent;
}
#endif /* HAVE_X_I18N */
...
...
@@ -2847,7 +2847,7 @@ if (use_xim)
{
/* XIM server might require some X events. */
unsigned long fevent = NoEventMask;
XGetICValues(FRAME_XIC (f), XNFilterEvents, &fevent, NULL);
XGetICValues
(FRAME_XIC (f), XNFilterEvents, &fevent, NULL);
if (fevent != NoEventMask)
{
...
...
@@ -2911,7 +2911,7 @@ x_window (f)
{
/* XIM server might require some X events. */
unsigned long fevent = NoEventMask;
XGetICValues(FRAME_XIC (f), XNFilterEvents, &fevent, NULL);
XGetICValues
(FRAME_XIC (f), XNFilterEvents, &fevent, NULL);
attributes.event_mask |= fevent;
attribute_mask = CWEventMask;
XChangeWindowAttributes (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
...
...
@@ -9166,7 +9166,7 @@ gif_load (f, img)
memsrc.len = SBYTES (specified_data);
memsrc.index = 0;
gif = DGifOpen(&memsrc, gif_read_from_memory);
gif = DGifOpen
(&memsrc, gif_read_from_memory);
if (!gif)
{
image_error ("Cannot open memory source `%s'", img->spec, Qnil);
...
...
src/xmenu.c
View file @
810f2256
...
...
@@ -610,7 +610,7 @@ single_menu_item (key, item, dummy, skp_v)
#endif
/* not HAVE_BOXES */
#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
if
(
!
NILP
(
map
))
if
(
!
NILP
(
map
))