From 1cab611c173b2903512268994343f58ef83883ec Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Thu, 3 Dec 2015 21:51:29 +0100 Subject: Add global lock guides to the rulers (bzr r14500.1.5) --- src/widgets/desktop-widget.cpp | 58 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 6 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index e19f56e48..ee8c3fb26 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -107,6 +107,7 @@ static void sp_desktop_widget_realize (GtkWidget *widget); static gint sp_desktop_widget_event (GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dtw); static void sp_dtw_color_profile_event(EgeColorProfTracker *widget, SPDesktopWidget *dtw); +static void update_guides_lock( GtkWidget *button, gpointer data ); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) static void cms_adjust_toggled( GtkWidget *button, gpointer data ); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -390,6 +391,27 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->tool_toolbox = ToolboxFactory::createToolToolbox(); ToolboxFactory::setOrientation( dtw->tool_toolbox, GTK_ORIENTATION_VERTICAL ); gtk_box_pack_start( GTK_BOX(dtw->hbox), dtw->tool_toolbox, FALSE, TRUE, 0 ); + /* Lock all guides */ + gchar const* tip = ""; + Inkscape::Verb* verb = Inkscape::Verb::get( SP_VERB_VIEW_GUIDES_LOCK_TOGGLE ); + if ( verb ) { + SPAction *act = verb->get_action( Inkscape::ActionContext( dtw->viewwidget.view ) ); + if ( act && act->tip ) { + tip = act->tip; + } + } + dtw->guides_lock = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION, + SP_BUTTON_TYPE_TOGGLE, + NULL, + INKSCAPE_ICON("object-locked"), + tip ); + { + bool locked = prefs->getBool("/options/guides/locked"); + if ( locked ) { + sp_button_toggle_set_down( SP_BUTTON(dtw->guides_lock), TRUE ); + } + } + g_signal_connect_after( G_OBJECT(dtw->guides_lock), "clicked", G_CALLBACK(update_guides_lock), dtw ); /* Horizontal ruler */ GtkWidget *eventbox = gtk_event_box_new (); @@ -398,7 +420,11 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) Inkscape::Util::Unit const *pt = unit_table.getUnit("pt"); sp_ruler_set_unit(SP_RULER(dtw->hruler), pt); gtk_widget_set_tooltip_text (dtw->hruler_box, gettext(pt->name_plural.c_str())); - gtk_container_add (GTK_CONTAINER (eventbox), dtw->hruler); + /* Lock all guides */ + dtw->hruler_box = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start( GTK_BOX(dtw->hruler_box), dtw->guides_lock, FALSE, FALSE, 0 ); + gtk_box_pack_start( GTK_BOX(dtw->hruler_box), dtw->hruler, true, true, 1 ); + gtk_container_add (GTK_CONTAINER (eventbox), dtw->hruler_box); g_signal_connect (G_OBJECT (eventbox), "button_press_event", G_CALLBACK (sp_dt_hruler_event), dtw); g_signal_connect (G_OBJECT (eventbox), "button_release_event", G_CALLBACK (sp_dt_hruler_event), dtw); g_signal_connect (G_OBJECT (eventbox), "motion_notify_event", G_CALLBACK (sp_dt_hruler_event), dtw); @@ -407,23 +433,25 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) GtkWidget *tbl = gtk_grid_new(); dtw->canvas_tbl = gtk_grid_new(); - gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 1, 0, 1, 1); + gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 0, 0, 1, 1); #else GtkWidget *tbl = gtk_table_new(2, 3, FALSE); dtw->canvas_tbl = gtk_table_new(3, 3, FALSE); gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), eventbox, - 1, 2, 0, 1, + 0, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0); #endif - + gtk_box_pack_start( GTK_BOX(dtw->hbox), tbl, TRUE, TRUE, 1 ); /* Vertical ruler */ eventbox = gtk_event_box_new (); dtw->vruler = sp_ruler_new(GTK_ORIENTATION_VERTICAL); + + /* Vertical ruler */ dtw->vruler_box = eventbox; sp_ruler_set_unit (SP_RULER (dtw->vruler), pt); gtk_widget_set_tooltip_text (dtw->vruler_box, gettext(pt->name_plural.c_str())); @@ -446,6 +474,9 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) // Horizontal scrollbar dtw->hadj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0)); + + + #if GTK_CHECK_VERSION(3,0,0) dtw->hscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (dtw->hadj)); gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->hscrollbar, 1, 2, 1, 1); @@ -487,8 +518,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) 0, 0); #endif - gchar const* tip = ""; - Inkscape::Verb* verb = Inkscape::Verb::get( SP_VERB_VIEW_CMS_TOGGLE ); + tip = ""; + verb = Inkscape::Verb::get( SP_VERB_VIEW_CMS_TOGGLE ); if ( verb ) { SPAction *act = verb->get_action( Inkscape::ActionContext( dtw->viewwidget.view ) ); if ( act && act->tip ) { @@ -1015,6 +1046,7 @@ sp_desktop_widget_event (GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dt return FALSE; } + #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) void sp_dtw_color_profile_event(EgeColorProfTracker */*tracker*/, SPDesktopWidget *dtw) { @@ -1036,6 +1068,20 @@ void sp_dtw_color_profile_event(EgeColorProfTracker */*tracker*/, SPDesktopWidge } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +void update_guides_lock( GtkWidget */*button*/, gpointer data ) +{ + SPDesktopWidget *dtw = SP_DESKTOP_WIDGET(data); + + bool down = SP_BUTTON_IS_DOWN(dtw->guides_lock); + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setBool("/options/guides/guides_lock", down); + if (down) { + dtw->setMessage (Inkscape::NORMAL_MESSAGE, _("Guides are locked")); + } else { + dtw->setMessage (Inkscape::NORMAL_MESSAGE, _("Guides are unlocked")); + } +} + #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) void cms_adjust_toggled( GtkWidget */*button*/, gpointer data ) { -- cgit v1.2.3 From dad44686e614958c26cfa2056891ebe9ea6db0dc Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Thu, 3 Dec 2015 22:15:42 +0100 Subject: String desc fix (bzr r14500.1.6) --- src/widgets/desktop-widget.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index ee8c3fb26..c2e69e469 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -1077,8 +1077,6 @@ void update_guides_lock( GtkWidget */*button*/, gpointer data ) prefs->setBool("/options/guides/guides_lock", down); if (down) { dtw->setMessage (Inkscape::NORMAL_MESSAGE, _("Guides are locked")); - } else { - dtw->setMessage (Inkscape::NORMAL_MESSAGE, _("Guides are unlocked")); } } -- cgit v1.2.3 From e649a1d9cd29f39b2d1cf343cec97ccebce9cf08 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 5 Dec 2015 23:55:57 +0100 Subject: Changed from Desktop to namedview to handle multiples documents (bzr r14500.1.8) --- src/widgets/desktop-widget.cpp | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index c2e69e469..901b4d328 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -393,7 +393,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_box_pack_start( GTK_BOX(dtw->hbox), dtw->tool_toolbox, FALSE, TRUE, 0 ); /* Lock all guides */ gchar const* tip = ""; - Inkscape::Verb* verb = Inkscape::Verb::get( SP_VERB_VIEW_GUIDES_LOCK_TOGGLE ); + Inkscape::Verb* verb = Inkscape::Verb::get( SP_VERB_TOGGLE_GUIDES_LOCK ); if ( verb ) { SPAction *act = verb->get_action( Inkscape::ActionContext( dtw->viewwidget.view ) ); if ( act && act->tip ) { @@ -405,12 +405,6 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) NULL, INKSCAPE_ICON("object-locked"), tip ); - { - bool locked = prefs->getBool("/options/guides/locked"); - if ( locked ) { - sp_button_toggle_set_down( SP_BUTTON(dtw->guides_lock), TRUE ); - } - } g_signal_connect_after( G_OBJECT(dtw->guides_lock), "clicked", G_CALLBACK(update_guides_lock), dtw ); /* Horizontal ruler */ @@ -1006,7 +1000,15 @@ void SPDesktopWidget::updateNamedview() modified_connection = desktop->namedview->connectModified(sigc::mem_fun(*this, &SPDesktopWidget::namedviewModified)); namedviewModified(desktop->namedview, SP_OBJECT_MODIFIED_FLAG); - + SPDocument *doc = desktop->getDocument(); + SPNamedView *nv = desktop->getNamedView(); + Inkscape::XML::Node *repr = nv->getRepr(); + bool locked = desktop->namedview->lockguides; + if ( locked ) { + sp_button_toggle_set_down( SP_BUTTON(guides_lock), TRUE ); + //to reverse the callback + sp_namedview_toggle_guides_lock(doc, repr); + } updateTitle( desktop->doc()->getName() ); } @@ -1073,11 +1075,12 @@ void update_guides_lock( GtkWidget */*button*/, gpointer data ) SPDesktopWidget *dtw = SP_DESKTOP_WIDGET(data); bool down = SP_BUTTON_IS_DOWN(dtw->guides_lock); - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setBool("/options/guides/guides_lock", down); - if (down) { - dtw->setMessage (Inkscape::NORMAL_MESSAGE, _("Guides are locked")); - } + + SPDocument *doc = dtw->desktop->getDocument(); + SPNamedView *nv = dtw->desktop->getNamedView(); + Inkscape::XML::Node *repr = nv->getRepr(); + nv->lockguides = down; + sp_namedview_toggle_guides_lock(doc, repr); } #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -- cgit v1.2.3 From 266cd1e5c43e6a46cd37f7db5138270b80d0944e Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sun, 6 Dec 2015 22:39:31 +0100 Subject: Fixes UX pointed in suv review (bzr r14500.1.9) --- src/widgets/desktop-widget.cpp | 81 ++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 38 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 901b4d328..fd2847506 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -107,7 +107,7 @@ static void sp_desktop_widget_realize (GtkWidget *widget); static gint sp_desktop_widget_event (GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dtw); static void sp_dtw_color_profile_event(EgeColorProfTracker *widget, SPDesktopWidget *dtw); -static void update_guides_lock( GtkWidget *button, gpointer data ); +static void sp_update_guides_lock( GtkWidget *button, gpointer data ); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) static void cms_adjust_toggled( GtkWidget *button, gpointer data ); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -392,20 +392,20 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) ToolboxFactory::setOrientation( dtw->tool_toolbox, GTK_ORIENTATION_VERTICAL ); gtk_box_pack_start( GTK_BOX(dtw->hbox), dtw->tool_toolbox, FALSE, TRUE, 0 ); /* Lock all guides */ - gchar const* tip = ""; - Inkscape::Verb* verb = Inkscape::Verb::get( SP_VERB_TOGGLE_GUIDES_LOCK ); - if ( verb ) { - SPAction *act = verb->get_action( Inkscape::ActionContext( dtw->viewwidget.view ) ); - if ( act && act->tip ) { - tip = act->tip; - } - } +#if GTK_CHECK_VERSION(3,0,0) + dtw->lock_and_hruler = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); +#else + dtw->lock_and_hruler = gtk_hbox_new (FALSE, 0); +#endif + // Lock guides button dtw->guides_lock = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION, SP_BUTTON_TYPE_TOGGLE, NULL, INKSCAPE_ICON("object-locked"), - tip ); - g_signal_connect_after( G_OBJECT(dtw->guides_lock), "clicked", G_CALLBACK(update_guides_lock), dtw ); + _("Toggle lock of all guides in the document")); + + gtk_box_pack_start (GTK_BOX (dtw->lock_and_hruler), dtw->guides_lock, FALSE, FALSE, 0); + g_signal_connect (G_OBJECT (dtw->guides_lock), "toggled", G_CALLBACK (sp_update_guides_lock), dtw); /* Horizontal ruler */ GtkWidget *eventbox = gtk_event_box_new (); @@ -414,11 +414,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) Inkscape::Util::Unit const *pt = unit_table.getUnit("pt"); sp_ruler_set_unit(SP_RULER(dtw->hruler), pt); gtk_widget_set_tooltip_text (dtw->hruler_box, gettext(pt->name_plural.c_str())); - /* Lock all guides */ - dtw->hruler_box = gtk_hbox_new (FALSE, 0); - gtk_box_pack_start( GTK_BOX(dtw->hruler_box), dtw->guides_lock, FALSE, FALSE, 0 ); - gtk_box_pack_start( GTK_BOX(dtw->hruler_box), dtw->hruler, true, true, 1 ); - gtk_container_add (GTK_CONTAINER (eventbox), dtw->hruler_box); + gtk_container_add (GTK_CONTAINER (eventbox), dtw->hruler); + gtk_container_add (GTK_CONTAINER (dtw->lock_and_hruler), eventbox); g_signal_connect (G_OBJECT (eventbox), "button_press_event", G_CALLBACK (sp_dt_hruler_event), dtw); g_signal_connect (G_OBJECT (eventbox), "button_release_event", G_CALLBACK (sp_dt_hruler_event), dtw); g_signal_connect (G_OBJECT (eventbox), "motion_notify_event", G_CALLBACK (sp_dt_hruler_event), dtw); @@ -427,13 +424,13 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) GtkWidget *tbl = gtk_grid_new(); dtw->canvas_tbl = gtk_grid_new(); - gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 0, 0, 1, 1); + gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->lock_and_hruler, 0, 0, 1, 1); #else GtkWidget *tbl = gtk_table_new(2, 3, FALSE); dtw->canvas_tbl = gtk_table_new(3, 3, FALSE); gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), - eventbox, + dtw->lock_and_hruler, 0, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0); @@ -512,8 +509,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) 0, 0); #endif - tip = ""; - verb = Inkscape::Verb::get( SP_VERB_VIEW_CMS_TOGGLE ); + gchar const* tip = ""; + Inkscape::Verb* verb = Inkscape::Verb::get( SP_VERB_VIEW_CMS_TOGGLE ); if ( verb ) { SPAction *act = verb->get_action( Inkscape::ActionContext( dtw->viewwidget.view ) ); if ( act && act->tip ) { @@ -1000,15 +997,7 @@ void SPDesktopWidget::updateNamedview() modified_connection = desktop->namedview->connectModified(sigc::mem_fun(*this, &SPDesktopWidget::namedviewModified)); namedviewModified(desktop->namedview, SP_OBJECT_MODIFIED_FLAG); - SPDocument *doc = desktop->getDocument(); - SPNamedView *nv = desktop->getNamedView(); - Inkscape::XML::Node *repr = nv->getRepr(); - bool locked = desktop->namedview->lockguides; - if ( locked ) { - sp_button_toggle_set_down( SP_BUTTON(guides_lock), TRUE ); - //to reverse the callback - sp_namedview_toggle_guides_lock(doc, repr); - } + updateTitle( desktop->doc()->getName() ); } @@ -1070,7 +1059,7 @@ void sp_dtw_color_profile_event(EgeColorProfTracker */*tracker*/, SPDesktopWidge } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void update_guides_lock( GtkWidget */*button*/, gpointer data ) +void sp_update_guides_lock( GtkWidget */*button*/, gpointer data ) { SPDesktopWidget *dtw = SP_DESKTOP_WIDGET(data); @@ -1079,8 +1068,16 @@ void update_guides_lock( GtkWidget */*button*/, gpointer data ) SPDocument *doc = dtw->desktop->getDocument(); SPNamedView *nv = dtw->desktop->getNamedView(); Inkscape::XML::Node *repr = nv->getRepr(); - nv->lockguides = down; - sp_namedview_toggle_guides_lock(doc, repr); + + if ( down != nv->lockguides ) { + nv->lockguides = down; + sp_namedview_guides_toggle_lock(doc, repr); + if (down) { + dtw->setMessage (Inkscape::NORMAL_MESSAGE, _("Locked all guides")); + } else { + dtw->setMessage (Inkscape::NORMAL_MESSAGE, _("Unlocked all guides")); + } + } } #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -1596,10 +1593,10 @@ void SPDesktopWidget::layoutWidgets() } if (!prefs->getBool(pref_root + "rulers/state", true)) { - gtk_widget_hide (dtw->hruler); + gtk_widget_hide (dtw->lock_and_hruler); gtk_widget_hide (dtw->vruler); } else { - gtk_widget_show_all (dtw->hruler); + gtk_widget_show_all (dtw->lock_and_hruler); gtk_widget_show_all (dtw->vruler); } } @@ -1731,6 +1728,7 @@ SPDesktopWidget* SPDesktopWidget::createInstance(SPNamedView *namedview) /* Once desktop is set, we can update rulers */ sp_desktop_widget_update_rulers (dtw); + sp_button_toggle_set_down( SP_BUTTON(dtw->guides_lock), namedview->lockguides ); sp_view_widget_set_view (SP_VIEW_WIDGET (dtw), dtw->desktop); @@ -2086,12 +2084,12 @@ void sp_desktop_widget_toggle_rulers (SPDesktopWidget *dtw) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - if (gtk_widget_get_visible (dtw->hruler)) { - gtk_widget_hide (dtw->hruler); + if (gtk_widget_get_visible (dtw->lock_and_hruler)) { + gtk_widget_hide (dtw->lock_and_hruler); gtk_widget_hide (dtw->vruler); prefs->setBool(dtw->desktop->is_fullscreen() ? "/fullscreen/rulers/state" : "/window/rulers/state", false); } else { - gtk_widget_show_all (dtw->hruler); + gtk_widget_show_all (dtw->lock_and_hruler); gtk_widget_show_all (dtw->vruler); prefs->setBool(dtw->desktop->is_fullscreen() ? "/fullscreen/rulers/state" : "/window/rulers/state", true); } @@ -2122,7 +2120,6 @@ bool sp_desktop_widget_color_prof_adj_enabled( SPDesktopWidget *dtw ) void sp_desktop_widget_toggle_color_prof_adj( SPDesktopWidget *dtw ) { - if ( gtk_widget_get_sensitive( dtw->cms_adjust ) ) { if ( SP_BUTTON_IS_DOWN(dtw->cms_adjust) ) { sp_button_toggle_set_down( SP_BUTTON(dtw->cms_adjust), FALSE ); @@ -2132,6 +2129,14 @@ void sp_desktop_widget_toggle_color_prof_adj( SPDesktopWidget *dtw ) } } +void sp_desktop_widget_toggle_guides_lock( SPDesktopWidget *dtw ) +{ + if ( SP_BUTTON_IS_DOWN(dtw->guides_lock) ) { + sp_button_toggle_set_down( SP_BUTTON(dtw->guides_lock), FALSE ); + } else { + sp_button_toggle_set_down( SP_BUTTON(dtw->guides_lock), TRUE ); + } +} /* Unused void sp_spw_toggle_menubar (SPDesktopWidget *dtw, bool is_fullscreen) -- cgit v1.2.3 From 93650897c928bfa9ca9b737cfbff55c25271d5d3 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Tue, 8 Dec 2015 00:34:32 +0100 Subject: cppification : GHashMaps replaced by stl maps. getResouceList now gives a std::set. Should give some performance improvements (quite a few linear lookups are now logarithmic) (bzr r14504.1.6) --- src/widgets/desktop-widget.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index e19f56e48..71a19d962 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -1813,9 +1813,9 @@ bool SPDesktopWidget::onFocusInEvent(GdkEventFocus*) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/options/bitmapautoreload/value", true)) { - GSList const *imageList = (desktop->doc())->getResourceList("image"); - for (GSList const *p = imageList; p; p = p->next) { - SPImage* image = SP_IMAGE(p->data); + std::set imageList = (desktop->doc())->getResourceList("image"); + for (std::set::const_iterator it = imageList.begin(); it != imageList.end(); ++it) { + SPImage* image = SP_IMAGE(*it); sp_image_refresh_if_outdated( image ); } } -- cgit v1.2.3 From d2ea9b6aecbbcf55b37081ec049af14b52a2ecf5 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Wed, 9 Dec 2015 16:06:31 +0100 Subject: Fix GTK3 rulers on guide Lock and remove gap between guides and horizontal ruler (bzr r14518) --- src/widgets/desktop-widget.cpp | 50 ++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 19 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index fd2847506..431b7a05d 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -70,6 +70,11 @@ #include "widget-sizes.h" #include "verbs.h" +#if GTK_CHECK_VERSION(3,0,0) +# include +# include +# include +#endif #include #include @@ -391,21 +396,19 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->tool_toolbox = ToolboxFactory::createToolToolbox(); ToolboxFactory::setOrientation( dtw->tool_toolbox, GTK_ORIENTATION_VERTICAL ); gtk_box_pack_start( GTK_BOX(dtw->hbox), dtw->tool_toolbox, FALSE, TRUE, 0 ); - /* Lock all guides */ -#if GTK_CHECK_VERSION(3,0,0) - dtw->lock_and_hruler = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); -#else - dtw->lock_and_hruler = gtk_hbox_new (FALSE, 0); -#endif // Lock guides button dtw->guides_lock = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION, SP_BUTTON_TYPE_TOGGLE, NULL, INKSCAPE_ICON("object-locked"), _("Toggle lock of all guides in the document")); - - gtk_box_pack_start (GTK_BOX (dtw->lock_and_hruler), dtw->guides_lock, FALSE, FALSE, 0); - g_signal_connect (G_OBJECT (dtw->guides_lock), "toggled", G_CALLBACK (sp_update_guides_lock), dtw); +#if GTK_CHECK_VERSION(3,0,0) + Glib::RefPtr guides_lock_style_provider = Gtk::CssProvider::create(); + guides_lock_style_provider->load_from_data("GtkWidget { padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }"); + Gtk::Widget * wnd = Glib::wrap(dtw->guides_lock); + Glib::RefPtr context = wnd->get_style_context(); + context->add_provider(guides_lock_style_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); +#endif /* Horizontal ruler */ GtkWidget *eventbox = gtk_event_box_new (); @@ -415,7 +418,6 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) sp_ruler_set_unit(SP_RULER(dtw->hruler), pt); gtk_widget_set_tooltip_text (dtw->hruler_box, gettext(pt->name_plural.c_str())); gtk_container_add (GTK_CONTAINER (eventbox), dtw->hruler); - gtk_container_add (GTK_CONTAINER (dtw->lock_and_hruler), eventbox); g_signal_connect (G_OBJECT (eventbox), "button_press_event", G_CALLBACK (sp_dt_hruler_event), dtw); g_signal_connect (G_OBJECT (eventbox), "button_release_event", G_CALLBACK (sp_dt_hruler_event), dtw); g_signal_connect (G_OBJECT (eventbox), "motion_notify_event", G_CALLBACK (sp_dt_hruler_event), dtw); @@ -424,18 +426,24 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) GtkWidget *tbl = gtk_grid_new(); dtw->canvas_tbl = gtk_grid_new(); - gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->lock_and_hruler, 0, 0, 1, 1); + gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->guides_lock, 0, 0, 1, 1); + gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 1, 0, 1, 1); #else GtkWidget *tbl = gtk_table_new(2, 3, FALSE); dtw->canvas_tbl = gtk_table_new(3, 3, FALSE); gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), - dtw->lock_and_hruler, - 0, 2, 0, 1, + dtw->guides_lock, + 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); + gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), + eventbox, + 1, 2, 0, 1, + GTK_FILL, GTK_FILL, + 0, 0); #endif - + g_signal_connect (G_OBJECT (dtw->guides_lock), "toggled", G_CALLBACK (sp_update_guides_lock), dtw); gtk_box_pack_start( GTK_BOX(dtw->hbox), tbl, TRUE, TRUE, 1 ); /* Vertical ruler */ @@ -1593,10 +1601,12 @@ void SPDesktopWidget::layoutWidgets() } if (!prefs->getBool(pref_root + "rulers/state", true)) { - gtk_widget_hide (dtw->lock_and_hruler); + gtk_widget_hide (dtw->guides_lock); + gtk_widget_hide (dtw->hruler); gtk_widget_hide (dtw->vruler); } else { - gtk_widget_show_all (dtw->lock_and_hruler); + gtk_widget_show_all (dtw->guides_lock); + gtk_widget_show_all (dtw->hruler); gtk_widget_show_all (dtw->vruler); } } @@ -2084,12 +2094,14 @@ void sp_desktop_widget_toggle_rulers (SPDesktopWidget *dtw) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - if (gtk_widget_get_visible (dtw->lock_and_hruler)) { - gtk_widget_hide (dtw->lock_and_hruler); + if (gtk_widget_get_visible (dtw->guides_lock)) { + gtk_widget_hide (dtw->guides_lock); + gtk_widget_hide (dtw->hruler); gtk_widget_hide (dtw->vruler); prefs->setBool(dtw->desktop->is_fullscreen() ? "/fullscreen/rulers/state" : "/window/rulers/state", false); } else { - gtk_widget_show_all (dtw->lock_and_hruler); + gtk_widget_show_all (dtw->guides_lock); + gtk_widget_show_all (dtw->hruler); gtk_widget_show_all (dtw->vruler); prefs->setBool(dtw->desktop->is_fullscreen() ? "/fullscreen/rulers/state" : "/window/rulers/state", true); } -- cgit v1.2.3 From 092c87ff207189a0d2f7fea193ecf8ea401a9a31 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Wed, 9 Dec 2015 17:26:27 +0100 Subject: Remove unnecesary headers for GTK3 (bzr r14521) --- src/widgets/desktop-widget.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 85f58c830..da7a54ca0 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -71,9 +71,7 @@ #include "verbs.h" #if GTK_CHECK_VERSION(3,0,0) -# include # include -# include #endif #include #include -- cgit v1.2.3 From fe412c234e1126a39a1b229cd1117f614567c148 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sun, 27 Dec 2015 23:47:12 +0000 Subject: Fix GTK+ fullscreen issue Fixed bugs: - https://launchpad.net/bugs/1529521 (bzr r14555) --- src/widgets/desktop-widget.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/widgets/desktop-widget.cpp') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index da7a54ca0..1fdd3ca6d 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -1500,7 +1500,6 @@ sp_desktop_widget_maximize(SPDesktopWidget *dtw) void sp_desktop_widget_fullscreen(SPDesktopWidget *dtw) { -#ifdef HAVE_GTK_WINDOW_FULLSCREEN GtkWindow *topw = GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(dtw->canvas))); if (GTK_IS_WINDOW(topw)) { if (dtw->desktop->is_fullscreen()) { @@ -1524,7 +1523,6 @@ sp_desktop_widget_fullscreen(SPDesktopWidget *dtw) // widget layout is triggered by the resulting window_state_event } } -#endif /* HAVE_GTK_WINDOW_FULLSCREEN */ } /** -- cgit v1.2.3