This is an automated email from the git hooks/post-receive script. o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository xfce/xfce4-settings.
commit d124fa70098c12a623a1577811a6fa92d693c5e6 Author: Simon Steinbeiss <[email protected]> Date: Fri Apr 19 00:43:01 2019 +0200 display: Re-introduce display numbering This should help with identifying displays in multihead setups. The numbering is shown in: - the display widget - the display combobox - the identity popups if there are >1 displays connected. --- dialogs/display-settings/identity-popup.glade | 25 +++++++--- dialogs/display-settings/main.c | 67 ++++++++++++++++++++++++--- 2 files changed, 80 insertions(+), 12 deletions(-) diff --git a/dialogs/display-settings/identity-popup.glade b/dialogs/display-settings/identity-popup.glade index 1d4be84..48cb006 100644 --- a/dialogs/display-settings/identity-popup.glade +++ b/dialogs/display-settings/identity-popup.glade @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.20.0 --> +<!-- Generated with glade 3.22.1 --> <interface> <requires lib="gtk+" version="3.20"/> <object class="GtkWindow" id="popup"> @@ -9,21 +9,29 @@ <property name="type_hint">notification</property> <property name="gravity">south</property> <child> + <placeholder/> + </child> + <child> <object class="GtkBox" id="hbox1"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="spacing">12</property> <child> - <object class="GtkImage" id="image1"> + <object class="GtkLabel" id="display_number"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="pixel_size">48</property> - <property name="icon_name">video-display</property> - <property name="icon_size">6</property> + <property name="valign">center</property> + <property name="margin_left">12</property> + <property name="margin_right">6</property> + <property name="label" translatable="yes"><span size="xx-large"><b>1</b></span> +</property> + <property name="use_markup">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> </object> <packing> - <property name="expand">True</property> + <property name="expand">False</property> <property name="fill">True</property> <property name="position">0</property> </packing> @@ -32,13 +40,17 @@ <object class="GtkBox" id="vbox1"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="valign">center</property> + <property name="margin_right">12</property> <property name="orientation">vertical</property> + <property name="spacing">3</property> <child> <object class="GtkLabel" id="display_name"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label"><big><b>Display: Name</b></big></property> <property name="use_markup">True</property> + <property name="xalign">0</property> </object> <packing> <property name="expand">True</property> @@ -51,6 +63,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="label">Resolution: 1280 x 800</property> + <property name="xalign">0</property> </object> <packing> <property name="expand">True</property> diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c index a47feb1..e8b44f5 100644 --- a/dialogs/display-settings/main.c +++ b/dialogs/display-settings/main.c @@ -818,9 +818,9 @@ display_setting_identity_display (gint display_id) { GtkBuilder *builder; GtkWidget *popup = NULL; - GObject *display_name, *display_details; + GObject *display_number, *display_name, *display_details; const XfceRRMode *current_mode; - gchar *color_hex = "#FFFFFF", *name_label, *details_label; + gchar *color_hex = "#FFFFFF", *number_label, *name_label, *details_label; gint screen_pos_x, screen_pos_y; gint window_width, window_height, screen_width, screen_height; @@ -835,6 +835,7 @@ display_setting_identity_display (gint display_id) g_signal_connect (G_OBJECT (popup), "draw", G_CALLBACK (display_setting_identity_popup_draw), builder); g_signal_connect (G_OBJECT (popup), "screen-changed", G_CALLBACK (display_setting_screen_changed), NULL); + display_number = gtk_builder_get_object (builder, "display_number"); display_name = gtk_builder_get_object (builder, "display_name"); display_details = gtk_builder_get_object (builder, "display_details"); @@ -861,12 +862,24 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS G_GNUC_END_IGNORE_DEPRECATIONS } - name_label = g_markup_printf_escaped ("<span foreground='%s'><big><b>%s %s</b></big></span>", + if (xfce_randr->noutput > 1) { + number_label = g_markup_printf_escaped ("<span foreground='%s' font='Bold 28'>%d</span>", + color_hex, display_id + 1); + gtk_label_set_markup (GTK_LABEL (display_number), number_label); + g_free (number_label); + } + else { + gtk_label_set_text (GTK_LABEL (display_number), NULL); + gtk_widget_set_margin_start (GTK_WIDGET (display_number), 0); + gtk_widget_set_margin_end (GTK_WIDGET (display_number), 0); + } + + name_label = g_markup_printf_escaped ("<span foreground='%s' font='Bold 10'>%s %s</span>", color_hex, _("Display:"), xfce_randr->friendly_name[display_id]); gtk_label_set_markup (GTK_LABEL (display_name), name_label); g_free (name_label); - details_label = g_markup_printf_escaped ("<span foreground='%s'>%s %i x %i</span>", color_hex, + details_label = g_markup_printf_escaped ("<span foreground='%s' font='Light 10'>%s %i x %i</span>", color_hex, _("Resolution:"), screen_width, screen_height); gtk_label_set_markup (GTK_LABEL (display_details), details_label); g_free (details_label); @@ -1416,10 +1429,16 @@ display_settings_combobox_populate (GtkBuilder *builder) /* Walk all the connected outputs */ for (m = 0; m < xfce_randr->noutput; ++m) { + gchar *friendly_name; + /* Insert the output in the store */ + if (xfce_randr->noutput > 1) + friendly_name = g_strdup_printf ("%d - %s", m + 1, xfce_randr->friendly_name[m]); + else + friendly_name = xfce_randr->friendly_name[m]; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, - COLUMN_OUTPUT_NAME, xfce_randr->friendly_name[m], + COLUMN_OUTPUT_NAME, friendly_name, COLUMN_OUTPUT_ID, m, -1); /* Select active output */ @@ -1428,6 +1447,8 @@ display_settings_combobox_populate (GtkBuilder *builder) gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), m); selected = TRUE; } + if (xfce_randr->noutput > 1) + g_free (friendly_name); } /* If nothing was selected the active output is no longer valid, @@ -3243,7 +3264,7 @@ paint_output (cairo_t *cr, int i, double *snap_x, double *snap_y) y + ((h * scale + 0.5) - factor * log_extent.height) / 2 - 1); /* Try to make the text as readable as possible for overlapping displays */ if (output->id == active_output && mirrored == 2) - cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, alpha); + cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, alpha); else cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, alpha - 0.6); @@ -3266,6 +3287,7 @@ paint_output (cairo_t *cr, int i, double *snap_x, double *snap_y) if (!output->on) { PangoLayout *display_state; + display_state = gtk_widget_create_pango_layout (GTK_WIDGET (randr_gui_area), _("(Disabled)")); layout_set_font (display_state, "Sans 8"); pango_layout_get_pixel_extents (display_state, &ink_extent, &log_extent); @@ -3283,6 +3305,39 @@ paint_output (cairo_t *cr, int i, double *snap_x, double *snap_y) g_object_unref (display_state); } + /* Show display number in the left bottom corner if there's more than 1*/ + if (xfce_randr->noutput > 1) + { + PangoLayout *display_number; + gchar *display_num; + + + display_num = g_strdup_printf ("%d", i + 1); + display_number = gtk_widget_create_pango_layout (GTK_WIDGET (randr_gui_area), display_num); + layout_set_font (display_number, "Mono Bold 9"); + pango_layout_get_pixel_extents (display_number, &ink_extent, &log_extent); + + available_w = w * scale + 0.5 - 6; + if (available_w < ink_extent.width) + factor = available_w / ink_extent.width; + else + factor = 1.0; + + cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.4); + cairo_arc (cr, + x + (w * scale + 0.5) / 2, + y + ((h * scale + 0.5)) - (factor * log_extent.height / 2) - 3.5, + factor * log_extent.height / 2 + 2.5, 0.0, 2 * M_PI); + cairo_fill (cr); + cairo_move_to (cr, + x + ((w * scale + 0.5) - factor * log_extent.width) / 2, + y + ((h * scale + 0.5) - factor * log_extent.height) - 3.5); + cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 1.0); + pango_cairo_show_layout (cr, display_number); + g_object_unref (display_number); + g_free (display_num); + } + cairo_restore (cr); if (pat_lin) -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
