@elextr commented on this pull request.


In src/socket.c:

> @@ -688,7 +698,10 @@ gboolean socket_lock_input_cb(GIOChannel *source, GIOCondition condition, gpoint
 				if (buf_len > 0 && buf[buf_len - 1] == '\n')
 					buf[buf_len - 1] = '\0';
 
-				handle_input_filename(buf);
+				// Important:
+				// avoid creating documents now because there could be a modal dialog open.
+				// modal code may call document_get_current and assume it hasn't changed
+				g_timeout_add(100, handle_input_filename, g_strdup(buf));

but I guess the API runs a separate mainloop internally which runs idle callbacks (and the GIO input callback here...).

Modal dialogs are only specified to freeze the user input to the UI, so any other event the mainloop sees should "just work".


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <geany/geany/pull/3395/review/1302400281@github.com>