summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Jeanmougin <marc@jeanmougin.fr>2018-06-14 18:19:38 +0000
committerMarc Jeanmougin <marc@jeanmougin.fr>2018-06-14 18:19:38 +0000
commit19bad0b6b3690bbeb287c64e5a30d7aabe015f4f (patch)
tree313c22f5dbb5c71bbc85a81f397debeaa790eb36
parentMerge branch 'GermanTranslation' of gitlab.com:der-Michael/inkscape (diff)
parentMake shutdown dialogs use gtkmm. (diff)
downloadinkscape-19bad0b6b3690bbeb287c64e5a30d7aabe015f4f.tar.gz
inkscape-19bad0b6b3690bbeb287c64e5a30d7aabe015f4f.zip
Merge branch 'gdkmm' of gitlab.com:linkmauve/inkscape
-rw-r--r--src/desktop-events.cpp2
-rw-r--r--src/desktop.cpp9
-rw-r--r--src/shortcuts.cpp6
-rw-r--r--src/ui/tool/event-utils.cpp3
-rw-r--r--src/ui/tools/select-tool.cpp5
-rw-r--r--src/ui/tools/tool-base.cpp36
-rw-r--r--src/ui/tools/tool-base.h3
-rw-r--r--src/ui/widget/font-selector-toolbar.cpp3
-rw-r--r--src/widgets/desktop-widget.cpp132
-rw-r--r--src/widgets/ege-adjustment-action.cpp3
-rw-r--r--src/widgets/ink-comboboxentry-action.cpp3
11 files changed, 92 insertions, 113 deletions
diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp
index c48b06a9c..feeddbdff 100644
--- a/src/desktop-events.cpp
+++ b/src/desktop-events.cpp
@@ -563,7 +563,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data)
sp_guideline_set_color(SP_GUIDELINE(item), guide->getColor());
// restore event context's cursor
- gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), desktop->event_context->cursor);
+ Glib::wrap(GTK_WIDGET(desktop->getCanvas()))->get_window()->set_cursor(desktop->event_context->cursor);
desktop->guidesMessageContext()->clear();
break;
diff --git a/src/desktop.cpp b/src/desktop.cpp
index 47c82b6d9..dad60832d 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -1503,12 +1503,11 @@ void SPDesktop::disableInteraction()
void SPDesktop::setWaitingCursor()
{
- GdkDisplay *display = gdk_display_get_default();
- GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH);
- gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(getCanvas())), waiting);
- g_object_unref(waiting);
+ Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
+ Glib::RefPtr<Gdk::Cursor> waiting = Gdk::Cursor::create(display, Gdk::WATCH);
+ Glib::wrap(GTK_WIDGET(getCanvas()))->get_window()->set_cursor(waiting);
// GDK needs the flush for the cursor change to take effect
- gdk_flush();
+ display->flush();
waiting_cursor = true;
}
diff --git a/src/shortcuts.cpp b/src/shortcuts.cpp
index 96008dbeb..5c2aa3e39 100644
--- a/src/shortcuts.cpp
+++ b/src/shortcuts.cpp
@@ -27,6 +27,7 @@
#include "shortcuts.h"
#include <gdk/gdkkeysyms.h>
+#include <gdkmm/display.h>
#include <gtk/gtk.h>
#include <glibmm/i18n.h>
@@ -687,9 +688,10 @@ static void read_shortcuts_file(char const *filename, bool const is_user_set) {
} else if (!strcmp(mod, "Meta")) {
modifiers |= SP_SHORTCUT_META_MASK;
} else if (!strcmp(mod, "Primary")) {
+ GdkKeymap* keymap = Gdk::Display::get_default()->get_keymap();
GdkModifierType mod =
- gdk_keymap_get_modifier_mask (gdk_keymap_get_default(), GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR);
- gdk_keymap_add_virtual_modifiers(gdk_keymap_get_default(), &mod);
+ gdk_keymap_get_modifier_mask (keymap, GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR);
+ gdk_keymap_add_virtual_modifiers(keymap, &mod);
if (mod & GDK_CONTROL_MASK)
modifiers |= SP_SHORTCUT_CONTROL_MASK;
else if (mod & GDK_META_MASK)
diff --git a/src/ui/tool/event-utils.cpp b/src/ui/tool/event-utils.cpp
index 6b8d5f0dc..7793c9d4d 100644
--- a/src/ui/tool/event-utils.cpp
+++ b/src/ui/tool/event-utils.cpp
@@ -11,6 +11,7 @@
#include <cstring>
#include <gdk/gdk.h>
#include <gdk/gdkkeysyms.h>
+#include <gdkmm/display.h>
#include "display/sp-canvas.h"
#include "ui/tool/event-utils.h"
@@ -22,7 +23,7 @@ guint shortcut_key(GdkEventKey const &event)
{
guint shortcut_key = 0;
gdk_keymap_translate_keyboard_state(
- gdk_keymap_get_for_display(gdk_display_get_default()),
+ Gdk::Display::get_default()->get_keymap(),
event.hardware_keycode,
(GdkModifierType) event.state,
0 /*event->key.group*/,
diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp
index ddc6e2881..b412812b6 100644
--- a/src/ui/tools/select-tool.cpp
+++ b/src/ui/tools/select-tool.cpp
@@ -21,6 +21,7 @@
#include <cstring>
#include <string>
+#include <gtkmm/widget.h>
#include <gdk/gdkkeysyms.h>
#include <glibmm/i18n.h>
@@ -344,9 +345,9 @@ bool SelectTool::item_handler(SPItem* item, GdkEvent* event) {
}
case GDK_LEAVE_NOTIFY:
if (!desktop->isWaitingCursor() && !this->dragging) {
- GdkWindow* window = gtk_widget_get_window (GTK_WIDGET (desktop->getCanvas()));
+ Glib::RefPtr<Gdk::Window> window = Glib::wrap(GTK_WIDGET(desktop->getCanvas()))->get_window();
- gdk_window_set_cursor(window, this->cursor);
+ window->set_cursor(this->cursor);
}
break;
diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp
index 9f9a155c2..ce319009b 100644
--- a/src/ui/tools/tool-base.cpp
+++ b/src/ui/tools/tool-base.cpp
@@ -19,6 +19,7 @@
#endif
#include <gdk/gdkkeysyms.h>
+#include <gdkmm/display.h>
#include <glibmm/i18n.h>
#include "shortcuts.h"
@@ -123,11 +124,6 @@ ToolBase::~ToolBase() {
delete this->message_context;
}
- if (this->cursor != NULL) {
- g_object_unref(this->cursor);
- this->cursor = NULL;
- }
-
if (this->desktop) {
this->desktop = NULL;
}
@@ -161,27 +157,23 @@ void ToolBase::sp_event_context_set_cursor(GdkCursorType cursor_type) {
* Recreates and draws cursor on desktop related to ToolBase.
*/
void ToolBase::sp_event_context_update_cursor() {
- GtkWidget *w = GTK_WIDGET(this->desktop->getCanvas());
- if (gtk_widget_get_window (w)) {
+ Gtk::Widget* w = Glib::wrap(GTK_WIDGET(desktop->getCanvas()));
+ if (w->get_window()) {
if (this->cursor_shape) {
- if(this->cursor) {
- g_object_unref(this->cursor);
- }
-
bool fillHasColor=false, strokeHasColor=false;
guint32 fillColor = sp_desktop_get_color_tool(this->desktop, this->getPrefsPath(), true, &fillHasColor);
guint32 strokeColor = sp_desktop_get_color_tool(this->desktop, this->getPrefsPath(), false, &strokeHasColor);
double fillOpacity = fillHasColor ? sp_desktop_get_opacity_tool(this->desktop, this->getPrefsPath(), true) : 0;
double strokeOpacity = strokeHasColor ? sp_desktop_get_opacity_tool(this->desktop, this->getPrefsPath(), false) : 0;
- this->cursor = sp_cursor_from_xpm(
+ this->cursor = Glib::wrap(sp_cursor_from_xpm(
this->cursor_shape,
SP_RGBA32_C_COMPOSE(fillColor, fillOpacity),
SP_RGBA32_C_COMPOSE(strokeColor, strokeOpacity)
- );
+ ));
}
- gdk_window_set_cursor(gtk_widget_get_window (w), this->cursor);
- gdk_flush();
+ w->get_window()->set_cursor(cursor);
+ w->get_display()->flush();
}
this->desktop->waiting_cursor = false;
}
@@ -546,8 +538,8 @@ bool ToolBase::root_handler(GdkEvent* event) {
if (panning_cursor == 1) {
panning_cursor = 0;
- GtkWidget *w = GTK_WIDGET(this->desktop->getCanvas());
- gdk_window_set_cursor(gtk_widget_get_window (w), this->cursor);
+ Gtk::Widget* w = Glib::wrap(GTK_WIDGET(desktop->getCanvas()));
+ w->get_window()->set_cursor(cursor);
}
if (within_tolerance && (panning || zoom_rb)) {
@@ -755,8 +747,8 @@ bool ToolBase::root_handler(GdkEvent* event) {
if (panning_cursor == 1) {
panning_cursor = 0;
- GtkWidget *w = GTK_WIDGET(this->desktop->getCanvas());
- gdk_window_set_cursor(gtk_widget_get_window (w), this->cursor);
+ Gtk::Widget* w = Glib::wrap(GTK_WIDGET(desktop->getCanvas()));
+ w->get_window()->set_cursor(cursor);
}
switch (get_latin_keyval(&event->key)) {
@@ -1179,7 +1171,7 @@ static void update_latin_keys_group() {
gint n_keys;
latin_keys_group_valid = FALSE;
- if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), GDK_KEY_a, &keys, &n_keys)) {
+ if (gdk_keymap_get_entries_for_keyval(Gdk::Display::get_default()->get_keymap(), GDK_KEY_a, &keys, &n_keys)) {
for (gint i = 0; i < n_keys; i++) {
if (!latin_keys_group_valid || keys[i].group < latin_keys_group) {
latin_keys_group = keys[i].group;
@@ -1194,7 +1186,7 @@ static void update_latin_keys_group() {
* Initialize Latin keys group handling.
*/
void init_latin_keys_group() {
- g_signal_connect(G_OBJECT(gdk_keymap_get_default()),
+ g_signal_connect(G_OBJECT(Gdk::Display::get_default()->get_keymap()),
"keys-changed", G_CALLBACK(update_latin_keys_group), NULL);
update_latin_keys_group();
}
@@ -1211,7 +1203,7 @@ guint get_latin_keyval(GdkEventKey const *event, guint *consumed_modifiers /*= N
gint group = latin_keys_group_valid ? latin_keys_group : event->group;
gdk_keymap_translate_keyboard_state(
- gdk_keymap_get_for_display(gdk_display_get_default()),
+ Gdk::Display::get_default()->get_keymap(),
event->hardware_keycode, (GdkModifierType) event->state, group,
&keyval, NULL, NULL, &modifiers);
diff --git a/src/ui/tools/tool-base.h b/src/ui/tools/tool-base.h
index 7185b787e..e7b0d0155 100644
--- a/src/ui/tools/tool-base.h
+++ b/src/ui/tools/tool-base.h
@@ -18,6 +18,7 @@
#include "knotholder.h"
#include <2geom/point.h>
#include <gdk/gdk.h>
+#include <gdkmm/cursor.h>
#include <glib-object.h>
#include <sigc++/trackable.h>
@@ -150,7 +151,7 @@ public:
virtual ~ToolBase();
Inkscape::Preferences::Observer *pref_observer;
- GdkCursor *cursor;
+ Glib::RefPtr<Gdk::Cursor> cursor;
gint xp, yp; ///< where drag started
gint tolerance;
diff --git a/src/ui/widget/font-selector-toolbar.cpp b/src/ui/widget/font-selector-toolbar.cpp
index c997e0920..4f951fa62 100644
--- a/src/ui/widget/font-selector-toolbar.cpp
+++ b/src/ui/widget/font-selector-toolbar.cpp
@@ -13,6 +13,7 @@
#include <glibmm/i18n.h>
#include <glibmm/regex.h>
+#include <gdkmm/display.h>
#include "font-selector-toolbar.h"
@@ -259,7 +260,7 @@ FontSelectorToolbar::on_key_press_event (GdkEventKey* key_event)
bool consumed = false;
unsigned int key = 0;
- gdk_keymap_translate_keyboard_state( gdk_keymap_get_for_display( gdk_display_get_default() ),
+ gdk_keymap_translate_keyboard_state( Gdk::Display::get_default()->get_keymap(),
key_event->hardware_keycode,
(GdkModifierType)key_event->state,
0, &key, 0, 0, 0 );
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 9b28e1424..7777b291f 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -28,6 +28,9 @@
#include <gtkmm/messagedialog.h>
#include <gtkmm/paned.h>
+#include <gdkmm/seat.h>
+#include <gdkmm/types.h>
+
#include <2geom/rect.h>
#include "attributes.h"
@@ -237,20 +240,21 @@ SPDesktopWidget::setMessage (Inkscape::MessageType type, const gchar *message)
Geom::Point
SPDesktopWidget::window_get_pointer()
{
- gint x,y;
- auto window = gtk_widget_get_window(GTK_WIDGET(canvas));
- auto display = gdk_window_get_display(window);
+ int x, y;
+ auto window = Glib::wrap(GTK_WIDGET(canvas))->get_window();
+ auto display = window->get_display();
#if GTK_CHECK_VERSION(3,20,0)
- auto seat = gdk_display_get_default_seat(display);
- auto device = gdk_seat_get_pointer(seat);
+ auto seat = display->get_default_seat();
+ auto device = seat->get_pointer();
#else
- auto dm = gdk_display_get_device_manager(display);
- auto device = gdk_device_manager_get_client_pointer(dm);
+ auto dm = display->get_device_manager();
+ auto device = dm->get_client_pointer();
#endif
- gdk_window_get_device_position(window, device, &x, &y, NULL);
+ Gdk::ModifierType m;
+ window->get_device_position(device, x, y, m);
- return Geom::Point(x,y);
+ return Geom::Point(x, y);
}
static GTimer *overallTimer = 0;
@@ -1080,38 +1084,28 @@ SPDesktopWidget::shutdown()
if (INKSCAPE.sole_desktop_for_document(*desktop)) {
SPDocument *doc = desktop->doc();
if (doc->isModifiedSinceSave()) {
- GtkWidget *dialog;
-
- /** \todo
- * FIXME !!! obviously this will have problems if the document
- * name contains markup characters
- */
- dialog = gtk_message_dialog_new_with_markup(
- GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(this))),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_NONE,
+ Gtk::Window *toplevel_window = Glib::wrap(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(this))));
+ Glib::ustring message = g_markup_printf_escaped(
_("<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before closing?</span>\n\n"
"If you close without saving, your changes will be discarded."),
doc->getName());
+ Gtk::MessageDialog dialog = Gtk::MessageDialog(*toplevel_window, message, true, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_NONE);
+ dialog.property_destroy_with_parent() = true;
+
// fix for bug lp:168809
- GtkWidget *ma = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(dialog));
- std::vector<Gtk::Widget*> ma_labels = Glib::wrap(GTK_CONTAINER(ma))->get_children();
- GtkWidget *label = GTK_WIDGET(ma_labels[0]->gobj());
- gtk_widget_set_can_focus(label, FALSE);
+ Gtk::Container *ma = dialog.get_message_area();
+ std::vector<Gtk::Widget*> ma_labels = ma->get_children();
+ ma_labels[0]->set_can_focus(false);
- GtkWidget *close_button;
- close_button = gtk_button_new_with_mnemonic(_("Close _without saving"));
- gtk_widget_show(close_button);
- gtk_dialog_add_action_widget(GTK_DIALOG(dialog), close_button, GTK_RESPONSE_NO);
+ Gtk::Button close_button(_("Close _without saving"), true);
+ close_button.show();
+ dialog.add_action_widget(close_button, Gtk::RESPONSE_NO);
- gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Cancel"), GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Save"), GTK_RESPONSE_YES);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_YES);
+ dialog.add_button(_("_Cancel"), Gtk::RESPONSE_CANCEL);
+ dialog.add_button(_("_Save"), Gtk::RESPONSE_YES);
+ dialog.set_default_response(Gtk::RESPONSE_YES);
- gint response;
- response = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ gint response = dialog.run();
switch (response) {
case GTK_RESPONSE_YES:
@@ -1139,41 +1133,32 @@ SPDesktopWidget::shutdown()
/* Code to check data loss */
bool allow_data_loss = FALSE;
while (doc->getReprRoot()->attribute("inkscape:dataloss") != NULL && allow_data_loss == FALSE) {
- GtkWidget *dialog;
-
- /** \todo
- * FIXME !!! obviously this will have problems if the document
- * name contains markup characters
- */
- dialog = gtk_message_dialog_new_with_markup(
- GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(this))),
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_NONE,
+ Gtk::Window *toplevel_window = Glib::wrap(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(this))));
+ Glib::ustring message = g_markup_printf_escaped(
_("<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a format that may cause data loss!</span>\n\n"
"Do you want to save this file as Inkscape SVG?"),
doc->getName() ? doc->getName() : "Unnamed");
+ Gtk::MessageDialog dialog = Gtk::MessageDialog(*toplevel_window, message, true, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_NONE);
+ dialog.property_destroy_with_parent() = true;
+
// fix for bug lp:168809
- GtkWidget *ma = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(dialog));
- std::vector<Gtk::Widget*> ma_labels = Glib::wrap(GTK_CONTAINER(ma))->get_children();
- GtkWidget *label = GTK_WIDGET(ma_labels[0]->gobj());
- gtk_widget_set_can_focus(label, FALSE);
-
- GtkWidget *close_button;
- close_button = gtk_button_new_with_mnemonic(_("Close _without saving"));
- gtk_widget_show(close_button);
- GtkWidget *save_button = gtk_button_new_with_mnemonic(_("_Save as Inkscape SVG"));
- gtk_widget_set_can_default(save_button, TRUE);
- gtk_widget_show(save_button);
- gtk_dialog_add_action_widget(GTK_DIALOG(dialog), close_button, GTK_RESPONSE_NO);
-
- gtk_dialog_add_button(GTK_DIALOG(dialog), _("_Cancel"), GTK_RESPONSE_CANCEL);
- gtk_dialog_add_action_widget(GTK_DIALOG(dialog), save_button, GTK_RESPONSE_YES);
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_YES);
-
- gint response;
- response = gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ Gtk::Container *ma = dialog.get_message_area();
+ std::vector<Gtk::Widget*> ma_labels = ma->get_children();
+ ma_labels[0]->set_can_focus(false);
+
+ Gtk::Button close_button(_("Close _without saving"), true);
+ close_button.show();
+ dialog.add_action_widget(close_button, Gtk::RESPONSE_NO);
+
+ dialog.add_button(_("_Cancel"), Gtk::RESPONSE_CANCEL);
+
+ Gtk::Button save_button(_("_Save as Inkscape SVG"), true);
+ save_button.set_can_default(true);
+ save_button.show();
+ dialog.add_action_widget(save_button, Gtk::RESPONSE_YES);
+ dialog.set_default_response(Gtk::RESPONSE_YES);
+
+ gint response = dialog.run();
switch (response) {
case GTK_RESPONSE_YES:
@@ -1366,19 +1351,14 @@ SPDesktopWidget::presentWindow()
bool SPDesktopWidget::showInfoDialog( Glib::ustring const &message )
{
bool result = false;
- GtkWindow *window = GTK_WINDOW( gtk_widget_get_toplevel( GTK_WIDGET(this) ) );
+ Gtk::Window *window = Glib::wrap(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(this))));
if (window)
{
- GtkWidget *dialog = gtk_message_dialog_new(
- window,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_OK,
- "%s", message.c_str());
- gtk_widget_set_name(dialog, "InfoDialog");
- gtk_window_set_title( GTK_WINDOW(dialog), _("Note:")); // probably want to take this as a parameter.
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
+ Gtk::MessageDialog dialog(*window, message, false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK);
+ dialog.property_destroy_with_parent() = true;
+ dialog.set_name("InfoDialog");
+ dialog.set_title(_("Note:")); // probably want to take this as a parameter.
+ dialog.run();
}
return result;
}
diff --git a/src/widgets/ege-adjustment-action.cpp b/src/widgets/ege-adjustment-action.cpp
index 318e6ced2..e922bcc00 100644
--- a/src/widgets/ege-adjustment-action.cpp
+++ b/src/widgets/ege-adjustment-action.cpp
@@ -48,6 +48,7 @@
#include <gtkmm/radiomenuitem.h>
#include <gtkmm/adjustment.h>
#include <gdk/gdkkeysyms.h>
+#include <gdkmm/display.h>
#include "widgets/ege-adjustment-action.h"
#include "ui/icon-names.h"
@@ -1014,7 +1015,7 @@ gboolean keypress_cb( GtkWidget *widget, GdkEventKey *event, gpointer data )
gboolean wasConsumed = FALSE; /* default to report event not consumed */
EgeAdjustmentAction* action = EGE_ADJUSTMENT_ACTION(data);
guint key = 0;
- gdk_keymap_translate_keyboard_state( gdk_keymap_get_for_display( gdk_display_get_default() ),
+ gdk_keymap_translate_keyboard_state( Gdk::Display::get_default()->get_keymap(),
event->hardware_keycode, (GdkModifierType)event->state,
0, &key, 0, 0, 0 );
diff --git a/src/widgets/ink-comboboxentry-action.cpp b/src/widgets/ink-comboboxentry-action.cpp
index 2fecb06a4..133ae7878 100644
--- a/src/widgets/ink-comboboxentry-action.cpp
+++ b/src/widgets/ink-comboboxentry-action.cpp
@@ -29,6 +29,7 @@
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
+#include <gdkmm/display.h>
#include "widgets/ink-comboboxentry-action.h"
#include "ui/icon-names.h"
@@ -921,7 +922,7 @@ gboolean keypress_cb( GtkWidget * /*widget*/, GdkEventKey *event, gpointer data
gboolean wasConsumed = FALSE; /* default to report event not consumed */
guint key = 0;
Ink_ComboBoxEntry_Action* action = INK_COMBOBOXENTRY_ACTION( data );
- gdk_keymap_translate_keyboard_state( gdk_keymap_get_for_display( gdk_display_get_default() ),
+ gdk_keymap_translate_keyboard_state( Gdk::Display::get_default()->get_keymap(),
event->hardware_keycode, (GdkModifierType)event->state,
0, &key, 0, 0, 0 );