AModule: retain existing default behavior when unconfigured
This commit is contained in:
		
							parent
							
								
									7e2d8ab2a3
								
							
						
					
					
						commit
						f78f29ee66
					
				|  | @ -42,9 +42,11 @@ You can apply special styling to any module for when the cursor hovers it. | ||||||
| ## Setting cursor style | ## Setting cursor style | ||||||
| 
 | 
 | ||||||
| Most, if not all, module types support setting the `cursor` option. This is | Most, if not all, module types support setting the `cursor` option. This is | ||||||
| configured in your `config.jsonc`. If set to `true`, when hovering the module a | configured in your `config.jsonc`. If set to `false`, when hovering the module a | ||||||
| "pointer"(as commonly known from web CSS styling `cursor: pointer`) style cursor | "pointer"(as commonly known from web CSS styling `cursor: pointer`) style cursor | ||||||
| will be shown. | will not be shown. Default behavior is to indicate an interaction event is | ||||||
|  | available. | ||||||
|  | 
 | ||||||
| There are more cursor types to choose from by setting the `cursor` option to | There are more cursor types to choose from by setting the `cursor` option to | ||||||
| a number, see Gdk3 official docs for all possible cursor types: | a number, see Gdk3 official docs for all possible cursor types: | ||||||
| https://docs.gtk.org/gdk3/enum.CursorType.html. | https://docs.gtk.org/gdk3/enum.CursorType.html. | ||||||
|  | @ -52,12 +54,12 @@ However, note that not all cursor options listed may be available on | ||||||
| your system. If you attempt to use a cursor which is not available, the | your system. If you attempt to use a cursor which is not available, the | ||||||
| application will crash. | application will crash. | ||||||
| 
 | 
 | ||||||
| Example of enabling pointer(`Gdk::Hand2`) cursor type on a custom module: | Example of disabling pointer(`Gdk::Hand2`) cursor type on a custom module: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| "custom/my-custom-module": { | "custom/my-custom-module": { | ||||||
|     ... |     ... | ||||||
|     "cursor": true, |     "cursor": false, | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -69,6 +69,7 @@ AModule::AModule(const Json::Value& config, const std::string& name, const std:: | ||||||
|     event_box_.signal_scroll_event().connect(sigc::mem_fun(*this, &AModule::handleScroll)); |     event_box_.signal_scroll_event().connect(sigc::mem_fun(*this, &AModule::handleScroll)); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   // Respect user configuration of cursor
 | ||||||
|   if (config_.isMember("cursor")) { |   if (config_.isMember("cursor")) { | ||||||
|     if (config_["cursor"].isBool() && config_["cursor"].asBool()) { |     if (config_["cursor"].isBool() && config_["cursor"].asBool()) { | ||||||
|       setCursor(Gdk::HAND2); |       setCursor(Gdk::HAND2); | ||||||
|  | @ -125,6 +126,12 @@ bool AModule::handleMouseEnter(GdkEventCrossing* const& e) { | ||||||
|   if (auto* module = event_box_.get_child(); module != nullptr) { |   if (auto* module = event_box_.get_child(); module != nullptr) { | ||||||
|     module->set_state_flags(Gtk::StateFlags::STATE_FLAG_PRELIGHT); |     module->set_state_flags(Gtk::StateFlags::STATE_FLAG_PRELIGHT); | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|  |   // Default behavior indicating event availability
 | ||||||
|  |   if (hasUserEvents_ && !config_.isMember("cursor")) { | ||||||
|  |     setCursor(Gdk::HAND2); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   return false; |   return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -132,6 +139,12 @@ bool AModule::handleMouseLeave(GdkEventCrossing* const& e) { | ||||||
|   if (auto* module = event_box_.get_child(); module != nullptr) { |   if (auto* module = event_box_.get_child(); module != nullptr) { | ||||||
|     module->unset_state_flags(Gtk::StateFlags::STATE_FLAG_PRELIGHT); |     module->unset_state_flags(Gtk::StateFlags::STATE_FLAG_PRELIGHT); | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|  |   // Default behavior indicating event availability
 | ||||||
|  |   if (hasUserEvents_ && !config_.isMember("cursor")) { | ||||||
|  |     setCursor(Gdk::ARROW); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   return false; |   return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue