[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