util: Move the text direction stuff out of MetaUI
GTK+ doesn't need to be initialized to get locale direction, which means we can do this without bringing up MetaUI at all.
This commit is contained in:
parent
7d1ef3f447
commit
f42258327b
@ -2900,7 +2900,7 @@ handle_activate_window_menu (MetaDisplay *display,
|
|||||||
meta_window_get_client_area_rect (display->focus_window, &child_rect);
|
meta_window_get_client_area_rect (display->focus_window, &child_rect);
|
||||||
|
|
||||||
x = frame_rect.x + child_rect.x;
|
x = frame_rect.x + child_rect.x;
|
||||||
if (meta_ui_get_direction() == META_UI_DIRECTION_RTL)
|
if (meta_get_locale_direction () == META_LOCALE_DIRECTION_RTL)
|
||||||
x += child_rect.width;
|
x += child_rect.width;
|
||||||
|
|
||||||
y = frame_rect.y + child_rect.y;
|
y = frame_rect.y + child_rect.y;
|
||||||
|
@ -1697,7 +1697,7 @@ button_layout_handler (GVariant *value,
|
|||||||
g_strfreev (sides);
|
g_strfreev (sides);
|
||||||
|
|
||||||
/* Invert the button layout for RTL languages */
|
/* Invert the button layout for RTL languages */
|
||||||
if (meta_ui_get_direction() == META_UI_DIRECTION_RTL)
|
if (meta_get_locale_direction() == META_LOCALE_DIRECTION_RTL)
|
||||||
{
|
{
|
||||||
MetaButtonLayout rtl_layout;
|
MetaButtonLayout rtl_layout;
|
||||||
int j;
|
int j;
|
||||||
|
@ -946,5 +946,19 @@ meta_later_remove (guint later_id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MetaLocaleDirection
|
||||||
|
meta_get_locale_direction (void)
|
||||||
|
{
|
||||||
|
switch (gtk_get_locale_direction ())
|
||||||
|
{
|
||||||
|
case GTK_TEXT_DIR_LTR:
|
||||||
|
return META_LOCALE_DIRECTION_LTR;
|
||||||
|
case GTK_TEXT_DIR_RTL:
|
||||||
|
return META_LOCALE_DIRECTION_RTL;
|
||||||
|
default:
|
||||||
|
g_assert_not_reached ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* eof util.c */
|
/* eof util.c */
|
||||||
|
|
||||||
|
@ -524,7 +524,7 @@ meta_workspace_activate_with_focus (MetaWorkspace *workspace,
|
|||||||
meta_screen_calc_workspace_layout (workspace->screen, num_workspaces,
|
meta_screen_calc_workspace_layout (workspace->screen, num_workspaces,
|
||||||
new_space, &layout2);
|
new_space, &layout2);
|
||||||
|
|
||||||
if (meta_ui_get_direction() == META_UI_DIRECTION_RTL)
|
if (meta_get_locale_direction () == META_LOCALE_DIRECTION_RTL)
|
||||||
{
|
{
|
||||||
if (layout1.current_col > layout2.current_col)
|
if (layout1.current_col > layout2.current_col)
|
||||||
direction = META_MOTION_RIGHT;
|
direction = META_MOTION_RIGHT;
|
||||||
@ -1087,7 +1087,7 @@ meta_workspace_get_neighbor (MetaWorkspace *workspace,
|
|||||||
meta_verbose ("Getting neighbor of %d in direction %s\n",
|
meta_verbose ("Getting neighbor of %d in direction %s\n",
|
||||||
current_space, meta_motion_direction_to_string (direction));
|
current_space, meta_motion_direction_to_string (direction));
|
||||||
|
|
||||||
ltr = meta_ui_get_direction() == META_UI_DIRECTION_LTR;
|
ltr = (meta_get_locale_direction () == META_LOCALE_DIRECTION_LTR);
|
||||||
|
|
||||||
switch (direction)
|
switch (direction)
|
||||||
{
|
{
|
||||||
|
@ -181,6 +181,14 @@ guint meta_later_add (MetaLaterType when,
|
|||||||
GDestroyNotify notify);
|
GDestroyNotify notify);
|
||||||
void meta_later_remove (guint later_id);
|
void meta_later_remove (guint later_id);
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
META_LOCALE_DIRECTION_LTR,
|
||||||
|
META_LOCALE_DIRECTION_RTL,
|
||||||
|
} MetaLocaleDirection;
|
||||||
|
|
||||||
|
MetaLocaleDirection meta_get_locale_direction (void);
|
||||||
|
|
||||||
#endif /* META_UTIL_H */
|
#endif /* META_UTIL_H */
|
||||||
|
|
||||||
|
|
||||||
|
10
src/ui/ui.c
10
src/ui/ui.c
@ -653,13 +653,3 @@ meta_ui_window_is_widget (MetaUI *ui,
|
|||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
MetaUIDirection
|
|
||||||
meta_ui_get_direction (void)
|
|
||||||
{
|
|
||||||
if (gtk_widget_get_default_direction() == GTK_TEXT_DIR_RTL)
|
|
||||||
return META_UI_DIRECTION_RTL;
|
|
||||||
|
|
||||||
return META_UI_DIRECTION_LTR;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -34,12 +34,6 @@ typedef struct _MetaUI MetaUI;
|
|||||||
|
|
||||||
typedef gboolean (* MetaEventFunc) (XEvent *xevent, gpointer data);
|
typedef gboolean (* MetaEventFunc) (XEvent *xevent, gpointer data);
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
META_UI_DIRECTION_LTR,
|
|
||||||
META_UI_DIRECTION_RTL
|
|
||||||
} MetaUIDirection;
|
|
||||||
|
|
||||||
void meta_ui_init (void);
|
void meta_ui_init (void);
|
||||||
|
|
||||||
Display* meta_ui_get_display (void);
|
Display* meta_ui_get_display (void);
|
||||||
@ -123,6 +117,4 @@ gboolean meta_ui_have_a_theme (void);
|
|||||||
gboolean meta_ui_window_is_widget (MetaUI *ui,
|
gboolean meta_ui_window_is_widget (MetaUI *ui,
|
||||||
Window xwindow);
|
Window xwindow);
|
||||||
|
|
||||||
MetaUIDirection meta_ui_get_direction (void);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user