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
62fe13a4
Commit
62fe13a4
authored
Jul 13, 2003
by
Juanma Barranquero
Browse files
(x_bitmap_icon,x_wm_set_icon_pixmap): Modify to add mask, and use the Gtk+
function gtk_window_icon_from_file if available.
parent
741518d9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
14 deletions
+31
-14
src/xterm.c
src/xterm.c
+31
-14
No files found.
src/xterm.c
View file @
62fe13a4
...
...
@@ -534,7 +534,7 @@ x_draw_vertical_window_border (w, x, y0, y1)
int x, y0, y1;
{
struct frame *f = XFRAME (WINDOW_FRAME (w));
XDrawLine (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
f->output_data.x->normal_gc, x, y0, x, y1);
}
...
...
@@ -3988,7 +3988,7 @@ xt_action_hook (widget, client_data, action_name, event, params,
x_send_scroll_bar_event (window_being_scrolled,
scroll_bar_end_scroll, 0, 0);
w = XWINDOW (window_being_scrolled);
if (!NILP (XSCROLL_BAR (w->vertical_scroll_bar)->dragging))
{
XSCROLL_BAR (w->vertical_scroll_bar)->dragging = Qnil;
...
...
@@ -6725,7 +6725,7 @@ handle_one_xevent (dpyinfo, eventp, bufp_r, numcharsp, finish)
do this one, the right one will come later.
The toolkit version doesn't seem to need this, but we
need to reset it below. */
int dont_resize
int dont_resize
= ((f->want_fullscreen & FULLSCREEN_WAIT)
&& f->new_text_cols != 0);
int rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, event.xconfigure.height);
...
...
@@ -7464,24 +7464,36 @@ x_bitmap_icon (f, file)
if (FRAME_X_WINDOW (f) == 0)
return 1;
/* Free up our existing icon bitmap if any. */
/* Free up our existing icon bitmap
and mask
if any. */
if (f->output_data.x->icon_bitmap > 0)
x_destroy_bitmap (f, f->output_data.x->icon_bitmap);
f->output_data.x->icon_bitmap = 0;
if (STRINGP (file))
bitmap_id = x_create_bitmap_from_file (f, file);
{
#ifdef USE_GTK
/* Use gtk_window_set_icon_from_file() if available,
It's not restricted to bitmaps */
if (!xg_set_icon(f, file))
return 0;
#endif /* USE_GTK */
bitmap_id = x_create_bitmap_from_file (f, file);
x_create_bitmap_mask(f, bitmap_id);
}
else
{
/* Create the GNU bitmap if necessary. */
/* Create the GNU bitmap
and mask
if necessary. */
if (FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id < 0)
FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id
= x_create_bitmap_from_data (f, gnu_bits,
gnu_width, gnu_height);
{
FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id
= x_create_bitmap_from_data (f, gnu_bits,
gnu_width, gnu_height);
x_create_bitmap_mask(f, FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id);
}
/* The first time we create the GNU bitmap,
/* The first time we create the GNU bitmap
and mask
,
this increments the ref-count one extra time.
As a result, the GNU bitmap
is
never freed.
As a result, the GNU bitmap
and mask are
never freed.
That way, we don't have to worry about allocating it again. */
x_reference_bitmap (f, FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id);
...
...
@@ -9296,7 +9308,7 @@ x_wm_set_icon_pixmap (f, pixmap_id)
struct frame *f;
int pixmap_id;
{
Pixmap icon_pixmap;
Pixmap icon_pixmap
, icon_mask
;
#ifndef USE_X_TOOLKIT
Window window = FRAME_OUTER_WINDOW (f);
...
...
@@ -9306,6 +9318,8 @@ x_wm_set_icon_pixmap (f, pixmap_id)
{
icon_pixmap = x_bitmap_pixmap (f, pixmap_id);
f->output_data.x->wm_hints.icon_pixmap = icon_pixmap;
icon_mask = x_bitmap_mask (f, pixmap_id);
f->output_data.x->wm_hints.icon_mask = icon_mask;
}
else
{
...
...
@@ -9318,6 +9332,7 @@ x_wm_set_icon_pixmap (f, pixmap_id)
best to explicitly give up. */
#if 0
f->output_data.x->wm_hints.icon_pixmap = None;
f->output_data.x->wm_hints.icon_mask = None;
#else
return;
#endif
...
...
@@ -9329,11 +9344,13 @@ x_wm_set_icon_pixmap (f, pixmap_id)
Arg al[1];
XtSetArg (al[0], XtNiconPixmap, icon_pixmap);
XtSetValues (f->output_data.x->widget, al, 1);
XtSetArg (al[0], XtNiconMask, icon_mask);
XtSetValues (f->output_data.x->widget, al, 1);
}
#else /* not USE_X_TOOLKIT */
f->output_data.x->wm_hints.flags |= IconPixmapHint;
f->output_data.x->wm_hints.flags |=
(
IconPixmapHint
| IconMaskHint)
;
XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints);
#endif /* not USE_X_TOOLKIT */
...
...
@@ -10523,7 +10540,7 @@ x_term_init (display_name, xrm_option, resource_name)
|| !strcmp (SDATA (value), "on")))
XSynchronize (dpyinfo->display, True);
}
{
Lisp_Object value;
value = display_x_get_resource (dpyinfo,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment