* @brief Handles mouse release events. */
| 662 | * @brief Handles mouse release events. |
| 663 | */ |
| 664 | void Titlebar::mouseReleaseEvent(QMouseEvent* event) |
| 665 | { |
| 666 | const Button releasedOn = buttonAt(event->position()); |
| 667 | |
| 668 | if (m_pressedButton != Button::None && m_pressedButton == releasedOn) { |
| 669 | switch (m_pressedButton) { |
| 670 | case Button::Minimize: |
| 671 | Q_EMIT minimizeClicked(); |
| 672 | break; |
| 673 | case Button::Maximize: |
| 674 | Q_EMIT maximizeClicked(); |
| 675 | break; |
| 676 | case Button::Close: |
| 677 | Q_EMIT closeClicked(); |
| 678 | break; |
| 679 | default: |
| 680 | break; |
| 681 | } |
| 682 | } |
| 683 | |
| 684 | m_pressedButton = Button::None; |
| 685 | m_dragging = false; |
| 686 | m_hoveredButton = releasedOn; |
| 687 | update(); |
| 688 | event->accept(); |
| 689 | } |
| 690 | |
| 691 | /** |
| 692 | * @brief Handles mouse move events for window dragging. |