diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-09-12 06:31:44 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-09-12 06:31:44 +0000 |
| commit | c7f3577f6c28f0a4f452b194a39e910cdb193e02 (patch) | |
| tree | 18d2304f57aae41b3e8bb4d7b628e3fe57958e2e /src | |
| parent | Remove a lonly header noticed by Maren (diff) | |
| download | inkscape-c7f3577f6c28f0a4f452b194a39e910cdb193e02.tar.gz inkscape-c7f3577f6c28f0a4f452b194a39e910cdb193e02.zip | |
Fix non changing value on combobox. This can also be used in other toolbars
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/toolbar/text-toolbar.cpp | 12 | ||||
| -rw-r--r-- | src/ui/toolbar/text-toolbar.h | 1 | ||||
| -rw-r--r-- | src/ui/tools/text-tool.cpp | 4 | ||||
| -rw-r--r-- | src/ui/widget/combo-box-entry-tool-item.cpp | 8 | ||||
| -rw-r--r-- | src/ui/widget/combo-box-entry-tool-item.h | 1 | ||||
| -rw-r--r-- | src/ui/widget/combo-tool-item.cpp | 9 | ||||
| -rw-r--r-- | src/ui/widget/combo-tool-item.h | 1 |
7 files changed, 27 insertions, 9 deletions
diff --git a/src/ui/toolbar/text-toolbar.cpp b/src/ui/toolbar/text-toolbar.cpp index 0f7cff822..c36b557a1 100644 --- a/src/ui/toolbar/text-toolbar.cpp +++ b/src/ui/toolbar/text-toolbar.cpp @@ -249,7 +249,6 @@ TextToolbar::TextToolbar(SPDesktop *desktop) (gpointer)font_lister_separator_func2, GTK_WIDGET(desktop->canvas))); // Focus widget _font_family_item->popup_enable(); // Enable entry completion - gchar *const info = _("Select all text with this font-family"); _font_family_item->set_info( info ); // Show selection icon _font_family_item->set_info_cb( (gpointer)sp_text_toolbox_select_cb ); @@ -272,6 +271,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) -1, nullptr); auto screen = gdk_screen_get_default(); + _font_family_item->focus_on_click(false); gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_USER); @@ -294,6 +294,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) GTK_WIDGET(desktop->canvas))); // Focus widget _font_style_item->signal_changed().connect(sigc::mem_fun(*this, &TextToolbar::fontstyle_value_changed)); + _font_style_item->focus_on_click(false); add(*_font_style_item); } @@ -322,6 +323,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) GTK_WIDGET(desktop->canvas))); // Focus widget _font_size_item->signal_changed().connect(sigc::mem_fun(*this, &TextToolbar::fontsize_value_changed)); + _font_size_item->focus_on_click(false); add(*_font_size_item); } /* Font_ size units */ @@ -329,6 +331,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) _font_size_units_item = _tracker_fs->create_tool_item(_("Units"), ("")); _font_size_units_item->signal_changed_after().connect( sigc::mem_fun(*this, &TextToolbar::fontsize_unit_changed)); + _font_size_units_item->focus_on_click(false); add(*_font_size_units_item); } { @@ -353,6 +356,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) { _line_height_units_item = _tracker->create_tool_item( _("Units"), ("")); _line_height_units_item->signal_changed_after().connect(sigc::mem_fun(*this, &TextToolbar::lineheight_unit_changed)); + _line_height_units_item->focus_on_click(false); add(*_line_height_units_item); } @@ -400,7 +404,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) _align_item->set_active( mode ); add(*_align_item); - + _align_item->focus_on_click(false); _align_item->signal_changed().connect(sigc::mem_fun(*this, &TextToolbar::align_mode_changed)); } @@ -548,7 +552,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) gint mode = prefs->getInt("/tools/text/writing_mode", 0); _writing_mode_item->set_active( mode ); add(*_writing_mode_item); - + _writing_mode_item->focus_on_click(false); _writing_mode_item->signal_changed().connect(sigc::mem_fun(*this, &TextToolbar::writing_mode_changed)); } @@ -588,6 +592,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) _orientation_item->use_label(false); gint mode = prefs->getInt("/tools/text/text_orientation", 0); _orientation_item->set_active( mode ); + _orientation_item->focus_on_click(false); add(*_orientation_item); _orientation_item->signal_changed().connect(sigc::mem_fun(*this, &TextToolbar::orientation_changed)); @@ -622,6 +627,7 @@ TextToolbar::TextToolbar(SPDesktop *desktop) _direction_item->use_label(false); gint mode = prefs->getInt("/tools/text/text_direction", 0); _direction_item->set_active( mode ); + _direction_item->focus_on_click(false); add(*_direction_item); _direction_item->signal_changed_after().connect(sigc::mem_fun(*this, &TextToolbar::direction_changed)); diff --git a/src/ui/toolbar/text-toolbar.h b/src/ui/toolbar/text-toolbar.h index 46a4ef70b..7dc62bf93 100644 --- a/src/ui/toolbar/text-toolbar.h +++ b/src/ui/toolbar/text-toolbar.h @@ -126,6 +126,7 @@ private: void dx_value_changed(); void dy_value_changed(); void prepare_inner(); + void focus_text(); void unindent_node(Inkscape::XML::Node *repr, Inkscape::XML::Node *before); void rotation_value_changed(); void fontsize_unit_changed(int not_used); diff --git a/src/ui/tools/text-tool.cpp b/src/ui/tools/text-tool.cpp index ef21ffea7..20b4c2c65 100644 --- a/src/ui/tools/text-tool.cpp +++ b/src/ui/tools/text-tool.cpp @@ -160,7 +160,6 @@ void TextTool::setup() { gtk_im_context_set_client_window(this->imc, gtk_widget_get_window (canvas)); - g_signal_connect(G_OBJECT(canvas), "motion_notify_event", G_CALLBACK(sptc_focus_in), this); g_signal_connect(G_OBJECT(canvas), "focus_in_event", G_CALLBACK(sptc_focus_in), this); g_signal_connect(G_OBJECT(canvas), "focus_out_event", G_CALLBACK(sptc_focus_out), this); g_signal_connect(G_OBJECT(this->imc), "commit", G_CALLBACK(sptc_commit), this); @@ -1795,9 +1794,6 @@ static void sp_text_context_forget_text(TextTool *tc) gint sptc_focus_in(GtkWidget *widget, GdkEventFocus */*event*/, TextTool *tc) { - if (!gtk_widget_is_focus (widget)) { - gtk_widget_grab_focus(widget); - } gtk_im_context_focus_in(tc->imc); return FALSE; } diff --git a/src/ui/widget/combo-box-entry-tool-item.cpp b/src/ui/widget/combo-box-entry-tool-item.cpp index 48f9cb856..f3786c6f6 100644 --- a/src/ui/widget/combo-box-entry-tool-item.cpp +++ b/src/ui/widget/combo-box-entry-tool-item.cpp @@ -335,6 +335,14 @@ ComboBoxEntryToolItem::set_extra_width( gint extra_width ) } void +ComboBoxEntryToolItem::focus_on_click( bool focus_on_click ) +{ + if (_combobox) { + gtk_widget_set_focus_on_click(GTK_WIDGET(_combobox), focus_on_click); + } +} + +void ComboBoxEntryToolItem::popup_enable() { _popup = true; diff --git a/src/ui/widget/combo-box-entry-tool-item.h b/src/ui/widget/combo-box-entry-tool-item.h index 2c2b71542..3d6440aff 100644 --- a/src/ui/widget/combo-box-entry-tool-item.h +++ b/src/ui/widget/combo-box-entry-tool-item.h @@ -102,6 +102,7 @@ public: void popup_enable(); void popup_disable(); + void focus_on_click( bool focus_on_click ); void set_info( const gchar* info ); void set_info_cb( gpointer info_cb ); diff --git a/src/ui/widget/combo-tool-item.cpp b/src/ui/widget/combo-tool-item.cpp index c3adf921f..ce366d0fc 100644 --- a/src/ui/widget/combo-tool-item.cpp +++ b/src/ui/widget/combo-tool-item.cpp @@ -58,7 +58,6 @@ ComboToolItem::ComboToolItem(Glib::ustring group_label, { Gtk::Box* box = Gtk::manage(new Gtk::Box()); add(*box); - if (_use_group_label) { Gtk::Label *group_label = Gtk::manage (new Gtk::Label( _group_label + ": " )); box->add( *group_label ); @@ -72,13 +71,19 @@ ComboToolItem::ComboToolItem(Glib::ustring group_label, _combobox->signal_changed().connect( sigc::mem_fun(*this, &ComboToolItem::on_changed_combobox)); - box->add (*_combobox); show_all(); } void +ComboToolItem::focus_on_click( bool focus_on_click ) +{ + _combobox->set_focus_on_click(focus_on_click); +} + + +void ComboToolItem::use_label(bool use_label) { _use_label = use_label; diff --git a/src/ui/widget/combo-tool-item.h b/src/ui/widget/combo-tool-item.h index 6a612256f..125208239 100644 --- a/src/ui/widget/combo-tool-item.h +++ b/src/ui/widget/combo-tool-item.h @@ -62,6 +62,7 @@ public: /* Style of combobox */ void use_label( bool use_label ); void use_icon( bool use_icon ); + void focus_on_click( bool focus_on_click ); void use_pixbuf( bool use_pixbuf ); void use_group_label( bool use_group_label ) { _use_group_label = use_group_label; } |
