[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28704] trunk/blender/source/blender/ editors/space_file: Tweak for elubie, scroll main file selector window immediately when newly added

Matt Ebb matt at mke3.net
Mon May 10 10:58:22 CEST 2010


Revision: 28704
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28704
Author:   broken
Date:     2010-05-10 10:57:58 +0200 (Mon, 10 May 2010)

Log Message:
-----------
Tweak for elubie, scroll main file selector window immediately when newly added
folder is out of view.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_file/file_ops.c
    trunk/blender/source/blender/editors/space_file/space_file.c

Modified: trunk/blender/source/blender/editors/space_file/file_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/file_ops.c	2010-05-10 08:05:31 UTC (rev 28703)
+++ trunk/blender/source/blender/editors/space_file/file_ops.c	2010-05-10 08:57:58 UTC (rev 28704)
@@ -749,8 +749,9 @@
 /* only meant for timer usage */
 static int file_smoothscroll_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
+	ScrArea *sa = CTX_wm_area(C);
 	SpaceFile *sfile= CTX_wm_space_file(C);
-	ARegion *ar= CTX_wm_region(C);
+	ARegion *ar, *oldar= CTX_wm_region(C);
 	int numfiles, offset;
 	int edit_idx = 0;
 	int numfiles_layout;
@@ -780,6 +781,7 @@
 	}
 
 	/* we need the correct area for scrolling */
+	ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
 	if (!ar || ar->regiontype != RGN_TYPE_WINDOW) {
 		WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), sfile->smoothscroll_timer);
 		sfile->smoothscroll_timer=NULL;
@@ -809,6 +811,10 @@
 		return OPERATOR_FINISHED;
 	}
 
+	/* temporarily set context to the main window region, 
+	 * so the scroll operators work */
+	CTX_wm_region_set(C, ar);
+	
 	/* scroll one step in the desired direction */
 	if (sfile->scroll_offset < offset) {
 		if (sfile->layout->flag & FILE_LAYOUT_HOR) {
@@ -827,6 +833,9 @@
 	
 	ED_region_tag_redraw(CTX_wm_region(C));
 	
+	/* and restore context */
+	CTX_wm_region_set(C, oldar);
+	
 	return OPERATOR_FINISHED;
 }
 

Modified: trunk/blender/source/blender/editors/space_file/space_file.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/space_file.c	2010-05-10 08:05:31 UTC (rev 28703)
+++ trunk/blender/source/blender/editors/space_file/space_file.c	2010-05-10 08:57:58 UTC (rev 28704)
@@ -384,6 +384,7 @@
 	WM_keymap_add_item(keymap, "FILE_OT_delete", DELKEY, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "FILE_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0);
 	WM_keymap_add_item(keymap, "FILE_OT_delete", BACKSPACEKEY, KM_PRESS, KM_OSKEY, 0);
+	WM_keymap_verify_item(keymap, "FILE_OT_smoothscroll", TIMER1, KM_ANY, KM_ANY, 0);
 
 	/* keys for main area */
 	keymap= WM_keymap_find(keyconf, "File Browser Main", SPACE_FILE, 0);
@@ -411,8 +412,8 @@
 	RNA_int_set(kmi->ptr, "increment", -10);
 	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_CTRL, 0);
 	RNA_int_set(kmi->ptr, "increment",-100);
-	WM_keymap_verify_item(keymap, "FILE_OT_smoothscroll", TIMER1, KM_ANY, KM_ANY, 0);
 	
+	
 	/* keys for button area (top) */
 	keymap= WM_keymap_find(keyconf, "File Browser Buttons", SPACE_FILE, 0);
 	kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0);
@@ -457,7 +458,12 @@
 /* add handlers, stuff you only do once or on area/region changes */
 static void file_header_area_init(wmWindowManager *wm, ARegion *ar)
 {
+	wmKeyMap *keymap;
+	
 	ED_region_header_init(ar);
+	
+	keymap= WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0);	
+	WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
 }
 
 static void file_header_area_draw(const bContext *C, ARegion *ar)





More information about the Bf-blender-cvs mailing list