summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-09-12 06:31:44 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-09-12 06:31:44 +0000
commitc7f3577f6c28f0a4f452b194a39e910cdb193e02 (patch)
tree18d2304f57aae41b3e8bb4d7b628e3fe57958e2e /src
parentRemove a lonly header noticed by Maren (diff)
downloadinkscape-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.cpp12
-rw-r--r--src/ui/toolbar/text-toolbar.h1
-rw-r--r--src/ui/tools/text-tool.cpp4
-rw-r--r--src/ui/widget/combo-box-entry-tool-item.cpp8
-rw-r--r--src/ui/widget/combo-box-entry-tool-item.h1
-rw-r--r--src/ui/widget/combo-tool-item.cpp9
-rw-r--r--src/ui/widget/combo-tool-item.h1
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; }