~ubuntu-multiseat/ubuntu/saucy/unity-greeter/bug1201122

« back to all changes in this revision

Viewing changes to src/menubar.c

Tags: upstream-12.10.3
ImportĀ upstreamĀ versionĀ 12.10.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
88
88
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
89
89
#define _g_variant_builder_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_builder_unref (var), NULL)))
90
90
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 
91
 
 
92
#define TYPE_UNITY_GREETER (unity_greeter_get_type ())
 
93
#define UNITY_GREETER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_UNITY_GREETER, UnityGreeter))
 
94
#define UNITY_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_UNITY_GREETER, UnityGreeterClass))
 
95
#define IS_UNITY_GREETER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_UNITY_GREETER))
 
96
#define IS_UNITY_GREETER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_UNITY_GREETER))
 
97
#define UNITY_GREETER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_UNITY_GREETER, UnityGreeterClass))
 
98
 
 
99
typedef struct _UnityGreeter UnityGreeter;
 
100
typedef struct _UnityGreeterClass UnityGreeterClass;
 
101
typedef struct _UnityGreeterPrivate UnityGreeterPrivate;
91
102
#define _fclose0(var) ((var == NULL) ? NULL : (var = (fclose (var), NULL)))
92
103
 
93
104
struct _IndicatorMenuItem {
132
143
        BACKGROUND_DRAW_FLAGS_GRID
133
144
} BackgroundDrawFlags;
134
145
 
 
146
struct _UnityGreeter {
 
147
        GTypeInstance parent_instance;
 
148
        volatile int ref_count;
 
149
        UnityGreeterPrivate * priv;
 
150
        gboolean test_mode;
 
151
};
 
152
 
 
153
struct _UnityGreeterClass {
 
154
        GTypeClass parent_class;
 
155
        void (*finalize) (UnityGreeter *self);
 
156
};
 
157
 
135
158
 
136
159
static gpointer indicator_menu_item_parent_class = NULL;
137
160
static gpointer menu_bar_parent_class = NULL;
138
 
extern gboolean unity_greeter_test_mode;
 
161
extern UnityGreeter* unity_greeter_singleton;
139
162
 
140
163
GType indicator_menu_item_get_type (void) G_GNUC_CONST;
141
164
#define INDICATOR_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_INDICATOR_MENU_ITEM, IndicatorMenuItemPrivate))
161
184
};
162
185
static void _g_object_unref0_ (gpointer var);
163
186
static void _g_list_free__g_object_unref0_ (GList* self);
164
 
#define MENU_BAR_HEIGHT 32
 
187
#define MENU_BAR_HEIGHT 24
165
188
MenuBar* menu_bar_new (Background* bg, GtkAccelGroup* ag);
166
189
MenuBar* menu_bar_construct (GType object_type, Background* bg, GtkAccelGroup* ag);
167
190
void menu_bar_set_layouts (MenuBar* self, GList* layouts);
174
197
void menu_bar_set_keyboard_state (MenuBar* self);
175
198
gboolean ug_settings_get_boolean (const gchar* key);
176
199
#define UG_SETTINGS_KEY_ONSCREEN_KEYBOARD "onscreen-keyboard"
 
200
static void menu_bar_real_get_preferred_height (GtkWidget* base, gint* min, gint* nat);
177
201
static void menu_bar_greeter_set_env (MenuBar* self, const gchar* key, const gchar* val);
178
202
static GtkWidget* menu_bar_make_a11y_indicator (MenuBar* self);
179
203
static void menu_bar_keyboard_toggled_cb (MenuBar* self, GtkCheckMenuItem* item);
186
210
static void _menu_bar_screen_reader_toggled_cb_gtk_check_menu_item_toggled (GtkCheckMenuItem* _sender, gpointer self);
187
211
#define UG_SETTINGS_KEY_SCREEN_READER "screen-reader"
188
212
LightDMLayout* unity_greeter_get_layout_by_name (const gchar* name);
 
213
gpointer unity_greeter_ref (gpointer instance);
 
214
void unity_greeter_unref (gpointer instance);
 
215
GParamSpec* param_spec_unity_greeter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
216
void value_set_unity_greeter (GValue* value, gpointer v_object);
 
217
void value_take_unity_greeter (GValue* value, gpointer v_object);
 
218
gpointer value_get_unity_greeter (const GValue* value);
 
219
GType unity_greeter_get_type (void) G_GNUC_CONST;
189
220
static gint menu_bar_cmp_layout (LightDMLayout* a, LightDMLayout* b);
190
221
static GtkWidget* menu_bar_make_keyboard_indicator (MenuBar* self);
191
222
static void menu_bar_setup_indicators (MenuBar* self);
569
600
}
570
601
 
571
602
 
 
603
static void menu_bar_real_get_preferred_height (GtkWidget* base, gint* min, gint* nat) {
 
604
        MenuBar * self;
 
605
        gint _vala_min = 0;
 
606
        gint _vala_nat = 0;
 
607
        self = (MenuBar*) base;
 
608
        _vala_min = MENU_BAR_HEIGHT;
 
609
        _vala_nat = MENU_BAR_HEIGHT;
 
610
        if (min) {
 
611
                *min = _vala_min;
 
612
        }
 
613
        if (nat) {
 
614
                *nat = _vala_nat;
 
615
        }
 
616
}
 
617
 
 
618
 
572
619
static void menu_bar_greeter_set_env (MenuBar* self, const gchar* key, const gchar* val) {
573
620
        const gchar* _tmp0_;
574
621
        const gchar* _tmp1_;
592
639
                GVariantBuilder* _tmp9_;
593
640
                GVariant* _tmp10_;
594
641
                GVariant* _tmp11_;
 
642
                GVariant* _tmp12_ = NULL;
 
643
                GVariant* _tmp13_;
595
644
                _tmp2_ = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, NULL, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus", NULL, &_inner_error_);
596
645
                proxy = _tmp2_;
597
646
                if (_inner_error_ != NULL) {
598
 
                        goto __catch5_g_error;
 
647
                        goto __catch6_g_error;
599
648
                }
600
649
                _tmp3_ = G_VARIANT_TYPE_ARRAY;
601
650
                _tmp4_ = g_variant_builder_new (_tmp3_);
608
657
                _tmp9_ = builder;
609
658
                _tmp10_ = g_variant_new ("(a{ss})", _tmp9_, NULL);
610
659
                _tmp11_ = g_variant_ref_sink (_tmp10_);
611
 
                g_dbus_proxy_call (_tmp8_, "UpdateActivationEnvironment", _tmp11_, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, NULL);
 
660
                _tmp12_ = g_dbus_proxy_call_sync (_tmp8_, "UpdateActivationEnvironment", _tmp11_, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &_inner_error_);
 
661
                _tmp13_ = _tmp12_;
 
662
                _g_variant_unref0 (_tmp13_);
612
663
                _g_variant_unref0 (_tmp11_);
 
664
                if (_inner_error_ != NULL) {
 
665
                        _g_variant_builder_unref0 (builder);
 
666
                        _g_object_unref0 (proxy);
 
667
                        goto __catch6_g_error;
 
668
                }
613
669
                _g_variant_builder_unref0 (builder);
614
670
                _g_object_unref0 (proxy);
615
671
        }
616
 
        goto __finally5;
617
 
        __catch5_g_error:
 
672
        goto __finally6;
 
673
        __catch6_g_error:
618
674
        {
619
675
                GError* e = NULL;
620
 
                GError* _tmp12_;
621
 
                const gchar* _tmp13_;
 
676
                GError* _tmp14_;
 
677
                const gchar* _tmp15_;
622
678
                e = _inner_error_;
623
679
                _inner_error_ = NULL;
624
 
                _tmp12_ = e;
625
 
                _tmp13_ = _tmp12_->message;
626
 
                g_warning ("menubar.vala:206: Could not get set environment for indicators: %s", _tmp13_);
 
680
                _tmp14_ = e;
 
681
                _tmp15_ = _tmp14_->message;
 
682
                g_warning ("menubar.vala:210: Could not get set environment for indicators: %s", _tmp15_);
627
683
                _g_error_free0 (e);
628
684
                return;
629
685
        }
630
 
        __finally5:
 
686
        __finally6:
631
687
        if (_inner_error_ != NULL) {
632
688
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
633
689
                g_clear_error (&_inner_error_);
786
842
        gboolean _tmp14_;
787
843
        GtkLabel* _tmp47_;
788
844
        const gchar* _tmp48_;
789
 
        gboolean _tmp49_;
 
845
        UnityGreeter* _tmp49_;
 
846
        gboolean _tmp50_;
790
847
        g_return_if_fail (self != NULL);
791
848
        g_return_if_fail (item != NULL);
792
849
        _tmp0_ = item;
918
975
        _tmp47_ = self->priv->keyboard_label;
919
976
        _tmp48_ = desc;
920
977
        gtk_label_set_label (_tmp47_, _tmp48_);
921
 
        _tmp49_ = unity_greeter_test_mode;
922
 
        if (_tmp49_) {
923
 
                LightDMLayout* _tmp50_;
924
 
                const gchar* _tmp51_;
 
978
        _tmp49_ = unity_greeter_singleton;
 
979
        _tmp50_ = _tmp49_->test_mode;
 
980
        if (_tmp50_) {
 
981
                LightDMLayout* _tmp51_;
925
982
                const gchar* _tmp52_;
926
 
                _tmp50_ = layout;
927
 
                _tmp51_ = lightdm_layout_get_name (_tmp50_);
928
 
                _tmp52_ = _tmp51_;
929
 
                g_debug ("menubar.vala:271: Setting layout to %s", _tmp52_);
 
983
                const gchar* _tmp53_;
 
984
                _tmp51_ = layout;
 
985
                _tmp52_ = lightdm_layout_get_name (_tmp51_);
 
986
                _tmp53_ = _tmp52_;
 
987
                g_debug ("menubar.vala:275: Setting layout to %s", _tmp53_);
930
988
        } else {
931
 
                LightDMLayout* _tmp53_;
932
 
                _tmp53_ = layout;
933
 
                lightdm_set_layout (_tmp53_);
 
989
                LightDMLayout* _tmp54_;
 
990
                _tmp54_ = layout;
 
991
                lightdm_set_layout (_tmp54_);
934
992
        }
935
993
        _g_free0 (desc);
936
994
        _g_object_unref0 (layout);
1108
1166
        _g_list_free0 (_tmp8_);
1109
1167
        _tmp10_ = g_getenv ("LANG");
1110
1168
        _tmp11_ = g_getenv ("LANGUAGE");
1111
 
        g_debug ("menubar.vala:329: LANG=%s LANGUAGE=%s", _tmp10_, _tmp11_);
 
1169
        g_debug ("menubar.vala:333: LANG=%s LANGUAGE=%s", _tmp10_, _tmp11_);
1112
1170
        _tmp12_ = g_build_filename (INDICATORDIR, "libsession.so", NULL);
1113
1171
        _tmp13_ = g_build_filename (INDICATORDIR, "libdatetime.so", NULL);
1114
1172
        _tmp14_ = g_build_filename (INDICATORDIR, "libpower.so", NULL);
1190
1248
        }
1191
1249
        _tmp31_ = g_getenv ("LANG");
1192
1250
        _tmp32_ = g_getenv ("LANGUAGE");
1193
 
        g_debug ("menubar.vala:347: LANG=%s LANGUAGE=%s", _tmp31_, _tmp32_);
 
1251
        g_debug ("menubar.vala:351: LANG=%s LANGUAGE=%s", _tmp31_, _tmp32_);
1194
1252
        filenames = (_vala_array_free (filenames, filenames_length1, (GDestroyNotify) g_free), NULL);
1195
1253
        _g_object_unref0 (a11y_item);
1196
1254
        _g_object_unref0 (keyboard_item);
1279
1337
                        _argv_size_ = argv_length1;
1280
1338
                        if (_inner_error_ != NULL) {
1281
1339
                                argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
1282
 
                                goto __catch6_g_error;
 
1340
                                goto __catch7_g_error;
1283
1341
                        }
1284
1342
                        _tmp6_ = argv;
1285
1343
                        _tmp6__length1 = argv_length1;
1288
1346
                        onboard_stdout_fd = _tmp8_;
1289
1347
                        if (_inner_error_ != NULL) {
1290
1348
                                argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
1291
 
                                goto __catch6_g_error;
 
1349
                                goto __catch7_g_error;
1292
1350
                        }
1293
1351
                        _tmp9_ = onboard_stdout_fd;
1294
1352
                        _tmp10_ = fdopen (_tmp9_, "r");
1314
1372
                        _fclose0 (f);
1315
1373
                        argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
1316
1374
                }
1317
 
                goto __finally6;
1318
 
                __catch6_g_error:
 
1375
                goto __finally7;
 
1376
                __catch7_g_error:
1319
1377
                {
1320
1378
                        GError* e = NULL;
1321
1379
                        GError* _tmp17_;
1324
1382
                        _inner_error_ = NULL;
1325
1383
                        _tmp17_ = e;
1326
1384
                        _tmp18_ = _tmp17_->message;
1327
 
                        g_warning ("menubar.vala:387: Error setting up keyboard: %s", _tmp18_);
 
1385
                        g_warning ("menubar.vala:391: Error setting up keyboard: %s", _tmp18_);
1328
1386
                        _g_error_free0 (e);
1329
1387
                        return;
1330
1388
                }
1331
 
                __finally6:
 
1389
                __finally7:
1332
1390
                if (_inner_error_ != NULL) {
1333
1391
                        g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
1334
1392
                        g_clear_error (&_inner_error_);
1571
1629
                if (_tmp5_) {
1572
1630
                        g_spawn_command_line_async ("orca --replace --no-setup --disable splash-window,main-window", &_inner_error_);
1573
1631
                        if (_inner_error_ != NULL) {
1574
 
                                goto __catch7_g_error;
 
1632
                                goto __catch8_g_error;
1575
1633
                        }
1576
1634
                } else {
1577
1635
                        g_spawn_command_line_async ("orca --quit", &_inner_error_);
1578
1636
                        if (_inner_error_ != NULL) {
1579
 
                                goto __catch7_g_error;
 
1637
                                goto __catch8_g_error;
1580
1638
                        }
1581
1639
                }
1582
1640
        }
1583
 
        goto __finally7;
1584
 
        __catch7_g_error:
 
1641
        goto __finally8;
 
1642
        __catch8_g_error:
1585
1643
        {
1586
1644
                GError* e = NULL;
1587
1645
                GError* _tmp6_;
1590
1648
                _inner_error_ = NULL;
1591
1649
                _tmp6_ = e;
1592
1650
                _tmp7_ = _tmp6_->message;
1593
 
                g_warning ("menubar.vala:474: Failed to run Orca: %s", _tmp7_);
 
1651
                g_warning ("menubar.vala:478: Failed to run Orca: %s", _tmp7_);
1594
1652
                _g_error_free0 (e);
1595
1653
        }
1596
 
        __finally7:
 
1654
        __finally8:
1597
1655
        if (_inner_error_ != NULL) {
1598
1656
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
1599
1657
                g_clear_error (&_inner_error_);
1765
1823
        }
1766
1824
        _tmp14_ = entry;
1767
1825
        _tmp15_ = pos;
1768
 
        g_debug ("menubar.vala:523: Adding indicator object %p at position %d", _tmp14_, _tmp15_);
 
1826
        g_debug ("menubar.vala:527: Adding indicator object %p at position %d", _tmp14_, _tmp15_);
1769
1827
        _tmp16_ = entry;
1770
1828
        _tmp17_ = indicator_menu_item_new (_tmp16_);
1771
1829
        _tmp18_ = g_object_ref_sink (_tmp17_);
1784
1842
        g_return_if_fail (object != NULL);
1785
1843
        g_return_if_fail (entry != NULL);
1786
1844
        _tmp0_ = entry;
1787
 
        g_debug ("menubar.vala:531: Removing indicator object %p", _tmp0_);
 
1845
        g_debug ("menubar.vala:535: Removing indicator object %p", _tmp0_);
1788
1846
        _tmp1_ = gtk_container_get_children ((GtkContainer*) self);
1789
1847
        {
1790
1848
                GList* child_collection = NULL;
1820
1878
                _g_list_free0 (child_collection);
1821
1879
        }
1822
1880
        _tmp8_ = entry;
1823
 
        g_warning ("menubar.vala:543: Indicator object %p not in menubar", _tmp8_);
 
1881
        g_warning ("menubar.vala:547: Indicator object %p not in menubar", _tmp8_);
1824
1882
}
1825
1883
 
1826
1884
 
1985
2043
                gtk_css_provider_load_from_data (_tmp21_, "* {-GtkWidget-window-dragging: false;}", (gssize) (-1), &_inner_error_);
1986
2044
                if (_inner_error_ != NULL) {
1987
2045
                        _g_object_unref0 (style);
1988
 
                        goto __catch8_g_error;
 
2046
                        goto __catch9_g_error;
1989
2047
                }
1990
2048
                _tmp22_ = gtk_widget_get_style_context ((GtkWidget*) self);
1991
2049
                _tmp23_ = style;
1992
2050
                gtk_style_context_add_provider (_tmp22_, (GtkStyleProvider*) _tmp23_, (guint) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
1993
2051
                _g_object_unref0 (style);
1994
2052
        }
1995
 
        goto __finally8;
1996
 
        __catch8_g_error:
 
2053
        goto __finally9;
 
2054
        __catch9_g_error:
1997
2055
        {
1998
2056
                GError* e = NULL;
1999
2057
                GError* _tmp24_;
2002
2060
                _inner_error_ = NULL;
2003
2061
                _tmp24_ = e;
2004
2062
                _tmp25_ = _tmp24_->message;
2005
 
                g_debug ("menubar.vala:165: Internal error loading session chooser style: %s", _tmp25_);
 
2063
                g_debug ("menubar.vala:165: Internal error loading menubar style: %s", _tmp25_);
2006
2064
                _g_error_free0 (e);
2007
2065
        }
2008
 
        __finally8:
 
2066
        __finally9:
2009
2067
        if (_inner_error_ != NULL) {
2010
2068
                _g_object_unref0 (hostname_item);
2011
2069
                _g_object_unref0 (label);
2013
2071
                g_clear_error (&_inner_error_);
2014
2072
        }
2015
2073
        menu_bar_setup_indicators (self);
2016
 
        gtk_widget_set_size_request ((GtkWidget*) self, -1, MENU_BAR_HEIGHT);
2017
2074
        _g_object_unref0 (hostname_item);
2018
2075
        _g_object_unref0 (label);
2019
2076
        return obj;
2024
2081
        menu_bar_parent_class = g_type_class_peek_parent (klass);
2025
2082
        g_type_class_add_private (klass, sizeof (MenuBarPrivate));
2026
2083
        GTK_WIDGET_CLASS (klass)->draw = menu_bar_real_draw;
 
2084
        GTK_WIDGET_CLASS (klass)->get_preferred_height = menu_bar_real_get_preferred_height;
2027
2085
        G_OBJECT_CLASS (klass)->get_property = _vala_menu_bar_get_property;
2028
2086
        G_OBJECT_CLASS (klass)->set_property = _vala_menu_bar_set_property;
2029
2087
        G_OBJECT_CLASS (klass)->constructor = menu_bar_constructor;