/[classpath]/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
ViewVC logotype

Diff of /classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.26 by fitzsim, Thu Aug 18 01:22:00 2005 UTC revision 1.27 by fitzsim, Thu Aug 25 02:26:49 2005 UTC
# Line 62  public class GtkFileDialogPeer extends G Line 62  public class GtkFileDialogPeer extends G
62    public native void nativeSetDirectory(String directory);    public native void nativeSetDirectory(String directory);
63    native void nativeSetFilenameFilter (FilenameFilter filter);    native void nativeSetFilenameFilter (FilenameFilter filter);
64    
   private boolean hiding = false;  
   
65    public void create()    public void create()
66    {    {
67      create((GtkContainerPeer) awtComponent.getParent().getPeer());      create((GtkContainerPeer) awtComponent.getParent().getPeer());
# Line 171  public class GtkFileDialogPeer extends G Line 169  public class GtkFileDialogPeer extends G
169      // GtkFileDialog will repaint by itself      // GtkFileDialog will repaint by itself
170      return null;      return null;
171    }    }
     
   public void setVisible (boolean b)  
   {  
     // prevent handle_response_cb -> postItemEvent -> awtComponent.setState -> this.setState  
     // -> gtkToggleButtonSetActive self-deadlock on the GDK lock.  
     if (hiding && Thread.currentThread() == GtkToolkit.mainThread)  
       {  
         setVisibleUnlocked (b);  
         hiding = false;  
       }  
     else  
       super.setVisible (b);  
   }  
172    
173    // called back by native side: handle_response_cb    // called back by native side: handle_response_cb
174      // only called from the GTK thread
175    void gtkHideFileDialog ()    void gtkHideFileDialog ()
176    {    {
177      // hide calls back the peer's setVisible method, so locking is a      // hide calls back the peer's setVisible method, so locking is a
178      // problem.      // problem.
     hiding = true;  
179      ((Dialog) awtComponent).hide();      ((Dialog) awtComponent).hide();
180    }    }
181        

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26