X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=radiant%2Ftexwindow.cpp;h=75d3788d607f55a0f3e34de14d917f82f0f2b976;hb=HEAD;hp=282ae0e7993bd7662108ffd904f90cebf16d3002;hpb=2dac2343d25b8a490ea93adfa8e828c88ec97595;p=xonotic%2Fnetradiant.git diff --git a/radiant/texwindow.cpp b/radiant/texwindow.cpp index 282ae0e7..22559b6a 100644 --- a/radiant/texwindow.cpp +++ b/radiant/texwindow.cpp @@ -151,9 +151,6 @@ void TextureGroups_addShader( TextureGroups& groups, const char* shaderName ){ if ( isNotex( shaderName ) ) { return; } - if ( isNotex( texture ) ) { - return; - } } if ( texture != shaderName ) { @@ -396,10 +393,10 @@ TextureBrowser() : m_rmbSelected( false ), m_searchedTags( false ), m_tags( false ), + m_move_started( false ), m_uniformTextureSize( 160 ), m_uniformTextureMinSize( 48 ), - m_hideNonShadersInCommon( true ), - m_move_started( false ){ + m_hideNonShadersInCommon( true ){ } }; @@ -550,9 +547,6 @@ bool Texture_IsShown( IShader* shader, bool show_shaders, bool show_textures, bo if ( isNotex( shader->getName() ) ) { return false; } - if ( isNotex( shader->getTexture()->name ) ) { - return false; - } } if ( g_TextureBrowser_currentDirectory == "Untagged" ) { @@ -888,6 +882,7 @@ void visit( const char* minor, const _QERPlugImageTable& table ) const { }; void TextureBrowser_ShowDirectory( TextureBrowser& textureBrowser, const char* directory ){ + textureBrowser.m_searchedTags = false; if ( TextureBrowser_showWads() ) { g_TextureBrowser_currentDirectory = directory; TextureBrowser_heightChanged( textureBrowser ); @@ -1128,16 +1123,15 @@ IShader* Texture_At( TextureBrowser& textureBrowser, int mx, int my ){ By mouse click ============== */ -void SelectTexture( TextureBrowser& textureBrowser, int mx, int my, guint32 flags ){ +void SelectTexture( TextureBrowser& textureBrowser, int mx, int my, guint32 flags, bool texturizeSelection ){ if ( ( flags & GDK_SHIFT_MASK ) == 0 ) { IShader* shader = Texture_At( textureBrowser, mx, my ); if ( shader != 0 ) { TextureBrowser_SetSelectedShader( textureBrowser, shader->getName() ); TextureBrowser_textureSelected( shader->getName() ); - if ( !FindTextureDialog_isOpen() && !textureBrowser.m_rmbSelected ) { - UndoableCommand undo( "textureNameSetSelected" ); - Select_SetShader( shader->getName() ); + if ( !FindTextureDialog_isOpen() && !textureBrowser.m_rmbSelected && !texturizeSelection ) { + Select_SetShader_Undo( shader->getName() ); } } } @@ -1183,8 +1177,8 @@ void TextureBrowser_Tracking_MouseDown( TextureBrowser& textureBrowser ){ textureBrowser.m_freezePointer.freeze_pointer( textureBrowser.m_gl_widget, TextureBrowser_trackingDelta, &textureBrowser ); } -void TextureBrowser_Selection_MouseDown( TextureBrowser& textureBrowser, guint32 flags, int pointx, int pointy ){ - SelectTexture( textureBrowser, pointx, textureBrowser.height - 1 - pointy, flags ); +void TextureBrowser_Selection_MouseDown( TextureBrowser& textureBrowser, guint32 flags, int pointx, int pointy, bool texturizeSelection ){ + SelectTexture( textureBrowser, pointx, textureBrowser.height - 1 - pointy, flags, texturizeSelection ); } void TextureBrowser_Selection_MouseUp( TextureBrowser& textureBrowser, guint32 flags, int pointx, int pointy ){ @@ -1535,10 +1529,11 @@ void BuildStoreAvailableTags( ui::ListStore storeAvailable, gboolean TextureBrowser_button_press( ui::Widget widget, GdkEventButton* event, TextureBrowser* textureBrowser ){ if ( event->type == GDK_BUTTON_PRESS ) { + gtk_widget_grab_focus( widget ); if ( event->button == 3 ) { if ( textureBrowser->m_tags ) { textureBrowser->m_rmbSelected = true; - TextureBrowser_Selection_MouseDown( *textureBrowser, event->state, static_cast( event->x ), static_cast( event->y ) ); + TextureBrowser_Selection_MouseDown( *textureBrowser, event->state, static_cast( event->x ), static_cast( event->y ), false ); BuildStoreAssignedTags( textureBrowser->m_assigned_store, textureBrowser->shader.c_str(), textureBrowser ); BuildStoreAvailableTags( textureBrowser->m_available_store, textureBrowser->m_assigned_store, textureBrowser->m_all_tags, textureBrowser ); @@ -1554,8 +1549,8 @@ gboolean TextureBrowser_button_press( ui::Widget widget, GdkEventButton* event, TextureBrowser_Tracking_MouseDown( *textureBrowser ); } } - else if ( event->button == 1 ) { - TextureBrowser_Selection_MouseDown( *textureBrowser, event->state, static_cast( event->x ), static_cast( event->y ) ); + else if ( event->button == 1 || event->button == 2 ) { + TextureBrowser_Selection_MouseDown( *textureBrowser, event->state, static_cast( event->x ), static_cast( event->y ), event->button == 2 ); if ( textureBrowser->m_tags ) { textureBrowser->m_rmbSelected = false; @@ -1567,7 +1562,6 @@ gboolean TextureBrowser_button_press( ui::Widget widget, GdkEventButton* event, #define GARUX_DISABLE_2BUTTON #ifndef GARUX_DISABLE_2BUTTON CopiedString texName = textureBrowser->shader; - //const char* sh = texName.c_str(); char* sh = const_cast( texName.c_str() ); char* dir = strrchr( sh, '/' ); if( dir != NULL ){ @@ -1612,6 +1606,10 @@ gboolean TextureBrowser_motion( ui::Widget widget, GdkEventMotion *event, Textur } gboolean TextureBrowser_scroll( ui::Widget widget, GdkEventScroll* event, TextureBrowser* textureBrowser ){ + gtk_widget_grab_focus( widget ); + if( !gtk_window_is_active( textureBrowser->m_parent ) ) + gtk_window_present( textureBrowser->m_parent ); + if ( event->direction == GDK_SCROLL_UP ) { TextureBrowser_MouseWheel( *textureBrowser, true ); } @@ -1900,6 +1898,8 @@ ui::MenuItem TextureBrowser_constructViewMenu( ui::Menu menu ){ } create_check_menu_item_with_mnemonic( menu, "Hide _Unused", "ShowInUse" ); + create_menu_item_with_mnemonic( menu, "Show All", "ShowAllTextures" ); + if ( string_empty( g_pGameDescription->getKeyValue( "show_wads" ) ) ) { create_check_menu_item_with_mnemonic( menu, "Hide Image Missing", "FilterMissing" ); } @@ -2145,6 +2145,7 @@ void TextureBrowser_searchTags(){ TextureDirectory_loadTexture( path.c_str(), name.c_str() ); } } + TextureBrowser_SetHideUnused( textureBrowser, false ); textureBrowser.m_searchedTags = true; g_TextureBrowser_currentDirectory = tags_searched; @@ -3116,10 +3117,6 @@ void TextureBrowser_Destroy(){ Textures_setModeChangedNotify( Callback() ); } -ui::Widget TextureBrowser_getGLWidget(){ - return GlobalTextureBrowser().m_gl_widget; -} - #if WORKAROUND_WINDOWS_GTK2_GLWIDGET ui::GLArea TextureBrowser_getGLWidget(){ return GlobalTextureBrowser().m_gl_widget;