@@ -320,14 +320,17 @@ local function CreateGoalCard(parent, index)
320320 card .barShimmer = CreateFrame (" Frame" , nil , card )
321321 card .sparkle = CreateFrame (" Frame" , nil , card )
322322
323- -- Hover effect with item tooltip and shift-compare
323+ -- Hover effect with item tooltip, shift-compare, and ctrl-preview
324324 card :EnableMouse (true )
325325 card .shiftWasDown = false
326+ card .ctrlWasDown = false
326327
327328 local function ShowCardTooltip (self )
328329 if self .itemID then
329330 GameTooltip :SetOwner (self , " ANCHOR_RIGHT" )
330331 GameTooltip :SetItemByID (self .itemID )
332+ GameTooltip :AddLine (" " )
333+ GameTooltip :AddLine (" |cff888888Ctrl+Click to preview|r" , 1 , 1 , 1 )
331334 GameTooltip :Show ()
332335 if IsShiftKeyDown () then
333336 GameTooltip_ShowCompareItem ()
@@ -343,6 +346,13 @@ local function CreateGoalCard(parent, index)
343346 self :SetBackdropColor (unpack (COLORS .bgCardHover ))
344347 self :SetBackdropBorderColor (unpack (COLORS .borderAccent ))
345348 ShowCardTooltip (self )
349+ -- Show magnifying glass cursor if Ctrl is held
350+ if IsControlKeyDown () and self .itemID then
351+ SetCursor (" INSPECT_CURSOR" )
352+ self .ctrlWasDown = true
353+ else
354+ self .ctrlWasDown = false
355+ end
346356 end
347357 end )
348358 card :SetScript (" OnLeave" , function (self )
@@ -352,15 +362,43 @@ local function CreateGoalCard(parent, index)
352362 GameTooltip :Hide ()
353363 if ShoppingTooltip1 then ShoppingTooltip1 :Hide () end
354364 if ShoppingTooltip2 then ShoppingTooltip2 :Hide () end
365+ ResetCursor ()
366+ self .ctrlWasDown = false
355367 end
356368 end )
357369 card :SetScript (" OnUpdate" , function (self )
358370 if not self :IsMouseOver () then return end
359371 if dragState .card then return end
372+ -- Handle Shift for compare tooltip
360373 local shiftDown = IsShiftKeyDown ()
361374 if shiftDown ~= self .shiftWasDown then
362375 ShowCardTooltip (self )
363376 end
377+ -- Handle Ctrl for magnifying glass cursor
378+ local ctrlDown = IsControlKeyDown ()
379+ if ctrlDown ~= self .ctrlWasDown then
380+ if ctrlDown and self .itemID then
381+ SetCursor (" INSPECT_CURSOR" )
382+ else
383+ ResetCursor ()
384+ end
385+ self .ctrlWasDown = ctrlDown
386+ end
387+ end )
388+
389+ -- Ctrl+Click to preview item in dressing room
390+ card :SetScript (" OnMouseUp" , function (self , button )
391+ if button == " LeftButton" and IsControlKeyDown () and self .itemID then
392+ local _ , itemLink = GetItemInfo (self .itemID )
393+ if itemLink then
394+ DressUpItemLink (itemLink )
395+ -- Position dressing room to the side of HonorLog frame
396+ if DressUpFrame and HonorLog .mainFrame then
397+ DressUpFrame :ClearAllPoints ()
398+ DressUpFrame :SetPoint (" TOPLEFT" , HonorLog .mainFrame , " TOPRIGHT" , 10 , 0 )
399+ end
400+ end
401+ end
364402 end )
365403
366404 -- Drag handle (left side grip) - extends to icon edge to prevent click-through
0 commit comments