From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22799 invoked by alias); 20 Sep 2002 17:39:49 -0000 Mailing-List: contact insight-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: insight-owner@sources.redhat.com Received: (qmail 22790 invoked from network); 20 Sep 2002 17:39:48 -0000 Received: from unknown (HELO touchme.toronto.redhat.com) (216.138.202.10) by sources.redhat.com with SMTP; 20 Sep 2002 17:39:48 -0000 Received: from redhat.com (totem.toronto.redhat.com [172.16.14.242]) by touchme.toronto.redhat.com (Postfix) with ESMTP id A040FB8833; Fri, 20 Sep 2002 13:39:47 -0400 (EDT) Message-ID: <3D8B5D63.5080301@redhat.com> Date: Fri, 20 Sep 2002 10:39:00 -0000 From: Fernando Nasser Organization: Red Hat , Inc. - Toronto User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020827 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Fernando Nasser Cc: insight@sources.redhat.com, "Martin M. Hunt" Subject: Re: Modal Dialogs lose grab when comboboxes are used References: <3D88E72F.3040406@redhat.com> <3D88F595.1040902@redhat.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-q3/txt/msg00182.txt.bz2 Committed. Fernando Nasser wrote: > > Here is a more complete version of the fix. > > I was not keeping track if the old grabs were local or global. > > Regards, > Fernando > > > > ------------------------------------------------------------------------ > > Index: library/combobox.tcl > =================================================================== > RCS file: /cvs/src/src/libgui/library/combobox.tcl,v > retrieving revision 1.2 > diff -c -p -r1.2 combobox.tcl > *** library/combobox.tcl 8 Sep 2001 22:34:46 -0000 1.2 > --- library/combobox.tcl 18 Sep 2002 21:49:20 -0000 > *************** proc ::combobox::build {w args } { > *** 106,111 **** > --- 106,113 ---- > variable options > variable oldValue > variable ignoreTrace > + variable grablist > + variable grabstatus > variable this > > array set widgets {} > *************** proc ::combobox::doInternalWidgetCommand > *** 677,682 **** > --- 679,686 ---- > proc ::combobox::widgetProc {w command args} { > upvar ::combobox::${w}::widgets widgets > upvar ::combobox::${w}::options options > + upvar ::combobox::${w}::grablist grablist > + upvar ::combobox::${w}::grabstatus grabstatus > > # this is just shorthand notation... > set doWidgetCommand \ > *************** proc ::combobox::widgetProc {w command a > *** 787,792 **** > --- 791,800 ---- > > # *gasp* do a global grab!!! Mom always told not to > # do things like this... :-) > + set grablist [grab current] > + foreach grabitem $grablist { > + lappend grabstatus [grab status $grabitem] > + } > grab -global $widgets(this) > > # fake the listbox into thinking it has focus > *************** proc ::combobox::widgetProc {w command a > *** 802,807 **** > --- 810,824 ---- > } > # hides the listbox > grab release $widgets(this) > + foreach grabitem $grablist itemstatus $grabstatus { > + if {$itemstatus == "global"} { > + grab set -global $grabitem > + } else { > + grab set $grabitem > + } > + } > + set grablist {} > + set grabstatus {} > $widgets(button) configure -relief raised > wm withdraw $widgets(popup) > -- Fernando Nasser Red Hat - Toronto E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9