1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00
putty-source/unix
Simon Tatham 412dce1e8a Stop using the GTK "configure-event" signal.
I've been using that signal since the very first commit of this source
file, as a combined way to be notified when the size of the drawing
area changes (typically due to user window resizing actions) and also
when the drawing area is first created and available to be drawn on.

Unfortunately, testing on Ubuntu 18.04, I ran into an oddity, in which
the call to gtk_widget_show(inst->window) in new_session_window() has
the side effect of delivering a spurious configure_event on the
drawing area with size 1x46 pixels. This causes the terminal to resize
itself to 1 column wide, and the mistake isn't rectified until a
followup configure-event arrives after new_session_window returns to
the GTK main loop. But that means terminal output can occur between
those two configure events (the connection-sharing "Reusing a shared
connection to host.name" is a good example), and when it does, it gets
embarrassingly wrapped at one character per line down the left column.

I briefly tried to bodge around this by trying to heuristically guess
which configure events were real and which were spurious, but I have
no faith in that strategy continuing to work. I think a better
approach is to abandon configure-event completely, and move to a
system in which the two purposes I was using it for are handled by two
_different_ GTK signals, namely "size-allocate" (for knowing when we
get resized) and "realize" (for knowing when the drawing area
physically exists for us to start setting up Cairo or GDK machinery).

The result seems to have fixed the silly one-column wrapping bug, and
retained the ability to handle window resizes, on every GTK version I
have conveniently available to test on, including GTK 3 both before
and after these spurious configures started to happen.
2018-05-10 20:22:02 +01:00
..
configure Move the Unix configure script up to the top level. 2014-02-22 18:01:32 +00:00
gtkapp.c Build fixes for GTK2. 2018-01-30 19:22:45 +00:00
gtkask.c Unix buildinfo: stop saying 'GTK' in pure CLI utilities. 2017-02-22 22:10:05 +00:00
gtkcfg.c On OS X, be able to configure either Option or Command as Meta. 2015-09-01 19:12:19 +01:00
gtkcols.c Memory leak: add a columns_finalize() method. 2017-11-26 11:36:00 +00:00
gtkcols.h New Columns method, columns_force_same_height(). 2015-08-24 19:34:23 +01:00
gtkcomm.c Remove the post_main() mechanism. 2017-11-26 20:03:12 +00:00
gtkcompat.h Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
gtkdlg.c Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
gtkfont.c Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
gtkfont.h Handle GTK 3.22's deprecation of gdk_cairo_create(). 2017-02-27 19:58:39 +00:00
gtkmain.c Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
gtkmisc.c Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
gtkmisc.h Move more functions into the new gtkmisc.c. 2015-08-31 15:45:43 +01:00
gtkwin.c Stop using the GTK "configure-event" signal. 2018-05-10 20:22:02 +01:00
osxlaunch.c osxlaunch: stop setting DYLD_LIBRARY_PATH. 2017-12-20 10:04:02 +00:00
pterm.bundle OS X makefile: stop depending on JHBUILD_PREFIX. 2017-11-26 11:45:48 +00:00
pterm.plist Create OS X application bundles for PuTTY and pterm. 2016-03-23 22:22:48 +00:00
putty.bundle OS X makefile: stop depending on JHBUILD_PREFIX. 2017-11-26 11:45:48 +00:00
putty.plist Create OS X application bundles for PuTTY and pterm. 2016-03-23 22:22:48 +00:00
unix.h Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
ux_x11.c Post-release destabilisation! Completely remove the struct type 2011-07-14 18:52:21 +00:00
uxagentc.c Memory leak: free conn->retbuf in uxagentc.c. 2017-11-26 11:32:34 +00:00
uxcfg.c Post-release destabilisation! Completely remove the struct type 2011-07-14 18:52:21 +00:00
uxcons.c Add some missing checks for EINTR after select(2). 2017-01-06 19:29:06 +00:00
uxgen.c cmdgen: option to specify the random number device to use. 2016-03-30 08:30:40 +01:00
uxgss.c Support GSS key exchange, for Kerberos 5 only. 2018-04-26 07:21:16 +01:00
uxmisc.c Better file-existence test on Unix. 2018-02-07 07:34:53 +00:00
uxnet.c Fix stale-pointer bugs in connection-fatal network errors. 2017-11-26 19:59:27 +00:00
uxnogtk.c Include the compile-time GTK version in the build info. 2017-02-15 19:32:42 +00:00
uxnoise.c Fix minor file descriptor leaks. Found by cppcheck, reported by Tim Kosse. 2009-09-16 22:28:20 +00:00
uxpeer.c Log identifying information for the other end of connections. 2015-05-18 14:03:10 +01:00
uxpgnt.c Get rid of fatalbox() completely. 2017-11-26 17:43:02 +00:00
uxplink.c Centralise PuTTY and Plink's non-option argument handling. 2017-12-07 20:13:33 +00:00
uxprint.c Update to r8614: another -D_FORTIFY_SOURCE=2 fix. 2010-02-20 11:21:25 +00:00
uxproxy.c unix: make uxsel callback functions return void. 2017-05-14 16:34:48 +01:00
uxpterm.c Centralise PuTTY and Plink's non-option argument handling. 2017-12-07 20:13:33 +00:00
uxpty.c Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
uxputty.c Centralise PuTTY and Plink's non-option argument handling. 2017-12-07 20:13:33 +00:00
uxsel.c unix: make select_result() return void. 2017-05-14 16:34:48 +01:00
uxser.c unix: make uxsel callback functions return void. 2017-05-14 16:34:48 +01:00
uxsftp.c Unix buildinfo: stop saying 'GTK' in pure CLI utilities. 2017-02-22 22:10:05 +00:00
uxshare.c Move make_dir_and_check_ours() out into uxmisc.c. 2015-05-05 20:16:22 +01:00
uxsignal.c Rename some of the more stupidly named files in the Unix back end. 2004-12-31 13:02:46 +00:00
uxstore.c Put in some explicit null-pointer checks. 2017-02-14 23:25:25 +00:00
uxucs.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
x11misc.c Ignore X11 BadMatch errors during cut buffer setup. 2016-03-20 18:30:03 +00:00
x11misc.h Basic support for running under GDK Wayland back end. 2018-05-09 09:21:27 +01:00
xkeysym.c Support for non-ISO-8859-1 X keysyms. So in particular, pterm in a 2003-04-27 11:10:48 +00:00
xpmptcfg.c Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
xpmpterm.c Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
xpmpucfg.c Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
xpmputty.c Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00