mirror of
https://github.com/brl/mutter.git
synced 2024-11-22 08:00:42 -05:00
Bug 305564 again.
2005-05-30 Ray Strode <rstrode@redhat.com> Bug 305564 again. When drawing XOR resize popup use "fixed" font instead of -misc-fixed-*-16-* xlfd. Should work on more xservers. Also take steps to fail better if the xserver isn't cooperating. * src/effects.c (draw_xor_rect): if we can't draw font box for whatever reason, at least draw grid frames. * src/screen.c (meta_screen_new): use fixed alias instead of a xfld. Don't pass GCFont to XCreateGC if font couldn't be loaded. Print a warning if font couldn't be loaded.
This commit is contained in:
parent
1799ef6006
commit
14b8de3727
17
ChangeLog
17
ChangeLog
@ -1,3 +1,20 @@
|
|||||||
|
2005-05-30 Ray Strode <rstrode@redhat.com>
|
||||||
|
|
||||||
|
Bug 305564 again.
|
||||||
|
|
||||||
|
When drawing XOR resize popup use "fixed" font instead of
|
||||||
|
-misc-fixed-*-16-* xlfd. Should work on more xservers.
|
||||||
|
|
||||||
|
Also take steps to fail better if the xserver isn't
|
||||||
|
cooperating.
|
||||||
|
|
||||||
|
* src/effects.c (draw_xor_rect): if we can't draw font box
|
||||||
|
for whatever reason, at least draw grid frames.
|
||||||
|
|
||||||
|
* src/screen.c (meta_screen_new): use fixed alias instead
|
||||||
|
of a xfld. Don't pass GCFont to XCreateGC if font couldn't
|
||||||
|
be loaded. Print a warning if font couldn't be loaded.
|
||||||
|
|
||||||
2005-05-26 Elijah Newren <newren@gmail.com>
|
2005-05-26 Elijah Newren <newren@gmail.com>
|
||||||
|
|
||||||
* HACKING: Add a clarification that METACITY_VERBOSE needs to be
|
* HACKING: Add a clarification that METACITY_VERBOSE needs to be
|
||||||
|
@ -472,7 +472,6 @@ draw_xor_rect (MetaScreen *screen,
|
|||||||
|
|
||||||
if ((width >= 0) && (height >= 0))
|
if ((width >= 0) && (height >= 0))
|
||||||
{
|
{
|
||||||
int box_width, box_height;
|
|
||||||
XGCValues gc_values = { 0 };
|
XGCValues gc_values = { 0 };
|
||||||
|
|
||||||
if (XGetGCValues (screen->display->xdisplay,
|
if (XGetGCValues (screen->display->xdisplay,
|
||||||
@ -485,6 +484,7 @@ draw_xor_rect (MetaScreen *screen,
|
|||||||
XFontStruct *font_struct;
|
XFontStruct *font_struct;
|
||||||
int text_width, text_height;
|
int text_width, text_height;
|
||||||
int box_x, box_y;
|
int box_x, box_y;
|
||||||
|
int box_width, box_height;
|
||||||
|
|
||||||
font_struct = XQueryFont (screen->display->xdisplay,
|
font_struct = XQueryFont (screen->display->xdisplay,
|
||||||
gc_values.font);
|
gc_values.font);
|
||||||
@ -501,6 +501,7 @@ draw_xor_rect (MetaScreen *screen,
|
|||||||
box_width = text_width + 2 * LINE_WIDTH;
|
box_width = text_width + 2 * LINE_WIDTH;
|
||||||
box_height = text_height + 2 * LINE_WIDTH;
|
box_height = text_height + 2 * LINE_WIDTH;
|
||||||
|
|
||||||
|
|
||||||
box_x = rect->x + (rect->width - box_width) / 2;
|
box_x = rect->x + (rect->width - box_width) / 2;
|
||||||
box_y = rect->y + (rect->height - box_height) / 2;
|
box_y = rect->y + (rect->height - box_height) / 2;
|
||||||
|
|
||||||
@ -521,15 +522,14 @@ draw_xor_rect (MetaScreen *screen,
|
|||||||
}
|
}
|
||||||
|
|
||||||
g_free (text);
|
g_free (text);
|
||||||
|
|
||||||
|
if ((box_width + LINE_WIDTH) >= (rect->width / 3))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ((box_height + LINE_WIDTH) >= (rect->height / 3))
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((box_width + LINE_WIDTH) >= (rect->width / 3))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if ((box_height + LINE_WIDTH) >= (rect->height / 3))
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Two vertical lines at 1/3 and 2/3 */
|
/* Two vertical lines at 1/3 and 2/3 */
|
||||||
|
20
src/screen.c
20
src/screen.c
@ -546,17 +546,31 @@ meta_screen_new (MetaDisplay *display,
|
|||||||
screen->trans_picture = None;
|
screen->trans_picture = None;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
XFontStruct *font_info;
|
||||||
XGCValues gc_values;
|
XGCValues gc_values;
|
||||||
|
gulong value_mask = 0;
|
||||||
|
|
||||||
gc_values.subwindow_mode = IncludeInferiors;
|
gc_values.subwindow_mode = IncludeInferiors;
|
||||||
|
value_mask |= GCSubwindowMode;
|
||||||
gc_values.function = GXinvert;
|
gc_values.function = GXinvert;
|
||||||
|
value_mask |= GCFunction;
|
||||||
gc_values.line_width = META_WIREFRAME_XOR_LINE_WIDTH;
|
gc_values.line_width = META_WIREFRAME_XOR_LINE_WIDTH;
|
||||||
gc_values.font = XLoadFont (screen->display->xdisplay,
|
value_mask |= GCLineWidth;
|
||||||
"-misc-fixed-*-*-*-*-16-*-*-*-*-*-*-*");
|
|
||||||
|
font_info = XLoadQueryFont (screen->display->xdisplay, "fixed");
|
||||||
|
|
||||||
|
if (font_info != NULL)
|
||||||
|
{
|
||||||
|
gc_values.font = font_info->fid;
|
||||||
|
value_mask |= GCFont;
|
||||||
|
XFreeFontInfo (NULL, font_info, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
meta_warning ("xserver doesn't have 'fixed' font.\n");
|
||||||
|
|
||||||
screen->root_xor_gc = XCreateGC (screen->display->xdisplay,
|
screen->root_xor_gc = XCreateGC (screen->display->xdisplay,
|
||||||
screen->xroot,
|
screen->xroot,
|
||||||
GCSubwindowMode | GCFunction | GCLineWidth | GCFont,
|
value_mask,
|
||||||
&gc_values);
|
&gc_values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user