Skip to content

Commit

Permalink
Merge 254672@main - [GTK] KeyBindingTranslator.m_nativeWidget is leaked
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=245384

Reviewed by Adrian Perez de Castro.

* Source/WebKit/UIProcess/gtk/KeyBindingTranslator.cpp:
(WebKit::KeyBindingTranslator::KeyBindingTranslator):
(WebKit::KeyBindingTranslator::commandsForKeyEvent):
* Source/WebKit/UIProcess/gtk/KeyBindingTranslator.h:
(WebKit::KeyBindingTranslator::widget const):

Canonical link: https://commits.webkit.org/254672@main

(cherry picked from commit 97f37b5)
  • Loading branch information
mcatanzaro authored and aperezdc committed Sep 20, 2022
1 parent 3fca55d commit eef2cdf
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 15 deletions.
26 changes: 13 additions & 13 deletions Source/WebKit/UIProcess/gtk/KeyBindingTranslator.cpp
Expand Up @@ -173,20 +173,20 @@ static void moveCursorCallback(GtkWidget* widget, GtkMovementStep step, gint cou
KeyBindingTranslator::KeyBindingTranslator()
: m_nativeWidget(gtk_text_view_new())
{
g_signal_connect(m_nativeWidget, "backspace", G_CALLBACK(backspaceCallback), this);
g_signal_connect(m_nativeWidget, "cut-clipboard", G_CALLBACK(cutClipboardCallback), this);
g_signal_connect(m_nativeWidget, "copy-clipboard", G_CALLBACK(copyClipboardCallback), this);
g_signal_connect(m_nativeWidget, "paste-clipboard", G_CALLBACK(pasteClipboardCallback), this);
g_signal_connect(m_nativeWidget, "select-all", G_CALLBACK(selectAllCallback), this);
g_signal_connect(m_nativeWidget, "move-cursor", G_CALLBACK(moveCursorCallback), this);
g_signal_connect(m_nativeWidget, "delete-from-cursor", G_CALLBACK(deleteFromCursorCallback), this);
g_signal_connect(m_nativeWidget, "toggle-overwrite", G_CALLBACK(toggleOverwriteCallback), this);
g_signal_connect(m_nativeWidget.get(), "backspace", G_CALLBACK(backspaceCallback), this);
g_signal_connect(m_nativeWidget.get(), "cut-clipboard", G_CALLBACK(cutClipboardCallback), this);
g_signal_connect(m_nativeWidget.get(), "copy-clipboard", G_CALLBACK(copyClipboardCallback), this);
g_signal_connect(m_nativeWidget.get(), "paste-clipboard", G_CALLBACK(pasteClipboardCallback), this);
g_signal_connect(m_nativeWidget.get(), "select-all", G_CALLBACK(selectAllCallback), this);
g_signal_connect(m_nativeWidget.get(), "move-cursor", G_CALLBACK(moveCursorCallback), this);
g_signal_connect(m_nativeWidget.get(), "delete-from-cursor", G_CALLBACK(deleteFromCursorCallback), this);
g_signal_connect(m_nativeWidget.get(), "toggle-overwrite", G_CALLBACK(toggleOverwriteCallback), this);
#if !USE(GTK4)
g_signal_connect(m_nativeWidget, "popup-menu", G_CALLBACK(popupMenuCallback), this);
g_signal_connect(m_nativeWidget, "show-help", G_CALLBACK(showHelpCallback), this);
g_signal_connect(m_nativeWidget.get(), "popup-menu", G_CALLBACK(popupMenuCallback), this);
g_signal_connect(m_nativeWidget.get(), "show-help", G_CALLBACK(showHelpCallback), this);
#endif
#if GTK_CHECK_VERSION(3, 24, 0)
g_signal_connect(m_nativeWidget, "insert-emoji", G_CALLBACK(insertEmojiCallback), this);
g_signal_connect(m_nativeWidget.get(), "insert-emoji", G_CALLBACK(insertEmojiCallback), this);
#endif
}

Expand Down Expand Up @@ -242,7 +242,7 @@ Vector<String> KeyBindingTranslator::commandsForKeyEvent(GtkEventControllerKey*
{
ASSERT(m_pendingEditorCommands.isEmpty());

gtk_event_controller_key_forward(GTK_EVENT_CONTROLLER_KEY(controller), m_nativeWidget);
gtk_event_controller_key_forward(GTK_EVENT_CONTROLLER_KEY(controller), m_nativeWidget.get());
if (!m_pendingEditorCommands.isEmpty())
return WTFMove(m_pendingEditorCommands);

Expand All @@ -254,7 +254,7 @@ Vector<String> KeyBindingTranslator::commandsForKeyEvent(GdkEventKey* event)
{
ASSERT(m_pendingEditorCommands.isEmpty());

gtk_bindings_activate_event(G_OBJECT(m_nativeWidget), event);
gtk_bindings_activate_event(G_OBJECT(m_nativeWidget.get()), event);
if (!m_pendingEditorCommands.isEmpty())
return WTFMove(m_pendingEditorCommands);

Expand Down
4 changes: 2 additions & 2 deletions Source/WebKit/UIProcess/gtk/KeyBindingTranslator.h
Expand Up @@ -36,7 +36,7 @@ class KeyBindingTranslator {
KeyBindingTranslator();
~KeyBindingTranslator();

GtkWidget* widget() const { return m_nativeWidget; }
GtkWidget* widget() const { return m_nativeWidget.get(); }
void invalidate() { m_nativeWidget = nullptr; }

#if USE(GTK4)
Expand All @@ -49,7 +49,7 @@ class KeyBindingTranslator {
void addPendingEditorCommand(const char* command) { m_pendingEditorCommands.append(String::fromLatin1(command)); }

private:
GtkWidget* m_nativeWidget;
GRefPtr<GtkWidget> m_nativeWidget;
Vector<String> m_pendingEditorCommands;
};

Expand Down

0 comments on commit eef2cdf

Please sign in to comment.