t"activate" signal now sent properly for GtkEntry widgets under Win32 - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit f40f0dd9b38a9fe1905d800b88b8b2679344e947
 (DIR) parent c9aaa404745fff897e4c49c0cee598d8d72e450a
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Thu, 26 Apr 2001 03:21:17 +0000
       
       "activate" signal now sent properly for GtkEntry widgets under Win32
       
       
       Diffstat:
         M src/gtkport.c                       |      18 ++++++++++++++++++
       
       1 file changed, 18 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/src/gtkport.c b/src/gtkport.c
       t@@ -634,6 +634,8 @@ static GSList *GtkTimeouts=NULL;
        static HWND TopLevel=NULL;
        long AsyncSocketError=0;
        
       +static WNDPROC wpOrigEntryProc;
       +
        static void gtk_set_default_font(HWND hWnd) {
           SendMessage(hWnd,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(FALSE,0));
        }
       t@@ -896,6 +898,17 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT msg,UINT wParam,LONG lParam) {
           return FALSE;
        }
        
       +LRESULT APIENTRY EntryWndProc(HWND hwnd,UINT msg,WPARAM wParam,
       +                              LPARAM lParam) {
       +   GtkWidget *widget;
       +   if (msg==WM_KEYUP && wParam==VK_RETURN) {
       +      widget=GTK_WIDGET(GetWindowLong(hwnd,GWL_USERDATA));
       +      if (widget) gtk_signal_emit(GTK_OBJECT(widget),"activate");
       +      return FALSE;
       +   }
       +   return CallWindowProc(wpOrigEntryProc,hwnd,msg,wParam,lParam);
       +}
       +
        void win32_init(HINSTANCE hInstance,HINSTANCE hPrevInstance) {
           WNDCLASS wc;
           hInst=hInstance;
       t@@ -1961,6 +1974,11 @@ void gtk_entry_realize(GtkWidget *widget) {
                                    widget->allocation.x,widget->allocation.y,
                                    widget->allocation.width,widget->allocation.height,
                                    Parent,NULL,hInst,NULL);
       +/* Subclass the window (we assume that all edit boxes have the same window
       +   procedure) */
       +   wpOrigEntryProc = (WNDPROC) SetWindowLong(widget->hWnd,
       +                                             GWL_WNDPROC,
       +                                             (LONG)EntryWndProc);
           gtk_set_default_font(widget->hWnd);
           gtk_editable_set_editable(GTK_EDITABLE(widget),
                                     GTK_EDITABLE(widget)->is_editable);