]> Pileus Git - ~andy/gtk/blobdiff - gdk/quartz/GdkQuartzNSWindow.c
quartz: Bug 674108 - Hard crash due to wrong NSAutoreleasePool stacking
[~andy/gtk] / gdk / quartz / GdkQuartzNSWindow.c
index ee21797383957ddf3a888b0f400c8fd098e4ce27..76a759ccc00824eefb941ebc4fb750fc20c9918d 100644 (file)
@@ -13,9 +13,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #import "GdkQuartzNSWindow.h"
   switch ([event type])
     {
     case NSLeftMouseUp:
+    {
+      double time = ((double)[event timestamp]) * 1000.0;
+
+      _gdk_quartz_events_break_all_grabs (time);
       inManualMove = NO;
       inManualResize = NO;
       inMove = NO;
       break;
+    }
 
     case NSLeftMouseDragged:
       if ([self trackManualMove] || [self trackManualResize])
   window->width = content_rect.size.width;
   window->height = content_rect.size.height;
 
+  /* Certain resize operations (e.g. going fullscreen), also move the
+   * origin of the window.
+   */
+  _gdk_quartz_window_update_position (window);
+
   [[self contentView] setFrame:NSMakeRect (0, 0, window->width, window->height)];
 
   _gdk_window_update_size (window);
   return YES;
 }
 
+-(BOOL)isInManualResize
+{
+  return inManualResize;
+}
+
 -(void)beginManualMove
 {
   NSRect frame = [self frame];