aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/interface-gtk
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2022-06-21 02:02:04 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2022-06-21 02:02:04 +0200
commit8031da622a7c3c86c1d212858b2e5b239e98322c (patch)
treea6164f83ffc525da523b183dc0682c28e2a35e22 /src/interface-gtk
parent0894eff5d9f5e904e23f1e582616af9e8b9772cc (diff)
downloadsciteco-8031da622a7c3c86c1d212858b2e5b239e98322c.tar.gz
Gtk+: Stop memory limiting when idling
* the same is done in the Curses UI * important for platforms that require busy polling of memory usage (Win32)
Diffstat (limited to 'src/interface-gtk')
-rw-r--r--src/interface-gtk/interface.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/interface-gtk/interface.c b/src/interface-gtk/interface.c
index c32d2e3..207d01c 100644
--- a/src/interface-gtk/interface.c
+++ b/src/interface-gtk/interface.c
@@ -54,6 +54,7 @@
#include "cmdline.h"
#include "qreg.h"
#include "ring.h"
+#include "memory.h"
#include "interface.h"
//#define DEBUG
@@ -1063,6 +1064,9 @@ teco_interface_event_loop(GError **error)
g_unix_signal_add(SIGTERM, teco_interface_sigterm_handler, NULL);
#endif
+ /* don't limit while waiting for input as this might be a busy operation */
+ teco_memory_stop_limiting();
+
gtk_main();
/*
@@ -1155,6 +1159,8 @@ teco_interface_key_pressed_cb(GtkWidget *widget, GdkEventKey *event, gpointer us
recursed = TRUE;
+ teco_memory_start_limiting();
+
g_queue_push_tail(teco_interface.event_queue, gdk_event_copy((GdkEvent *)event));
GdkWindow *top_window = gdk_window_get_toplevel(gtk_widget_get_window(teco_interface.window));
@@ -1194,6 +1200,8 @@ teco_interface_key_pressed_cb(GtkWidget *widget, GdkEventKey *event, gpointer us
gtk_main_iteration_do(FALSE);
} while (!g_queue_is_empty(teco_interface.event_queue));
+ teco_memory_stop_limiting();
+
recursed = FALSE;
return TRUE;
}